From 68caadba760b03bf22ef807e284127535b573ec5 Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Mon, 3 Jul 2017 16:49:42 +0530 Subject: [PATCH 1/8] Add a build-id to built binary --- scripts/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/build.sh b/scripts/build.sh index 6495422f4..40803c1e6 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -13,6 +13,7 @@ fi GOBUILD_TAGS="novirt noaugeas " VERSION=$($(dirname $0)/pkg-version --full) LDFLAGS="-X github.com/gluster/glusterd2/gdctx.GlusterdVersion=$VERSION" +LDFLAGS+=" -B 0x$(head -c20 /dev/urandom | od -An -tx1 | tr -d ' \n')" BIN=$(basename $(go list -f '{{.ImportPath}}')) if [ "$PLUGINS" == "yes" ]; then From ee11150786f3f6fcc2b131053df1ed412cae5695 Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Mon, 3 Jul 2017 16:50:21 +0530 Subject: [PATCH 2/8] Add a systemd service unit file --- extras/systemd/glusterd2.service | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 extras/systemd/glusterd2.service diff --git a/extras/systemd/glusterd2.service b/extras/systemd/glusterd2.service new file mode 100644 index 000000000..fc0f26272 --- /dev/null +++ b/extras/systemd/glusterd2.service @@ -0,0 +1,14 @@ +[Unit] +Description=GlusterD2, the management service for GlusterFS (pre-release) +Requires=rpcbind.service +After=network.target rpcbind.service +Before=network-online.target +Conflicts=glusterd.service + +[Service] +Type=forking +ExecStart=/usr/sbin/glusterd2 +KillMode=process + +[Install] +WantedBy=multi-user.target From ff57aa8ad5566eecb9041d1b1d21bf00dd02d62d Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Mon, 3 Jul 2017 19:20:12 +0530 Subject: [PATCH 3/8] Add specfile for RPMs --- extras/rpms/glusterd.toml | 5 +++ extras/rpms/glusterd2.spec | 81 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 extras/rpms/glusterd.toml create mode 100644 extras/rpms/glusterd2.spec diff --git a/extras/rpms/glusterd.toml b/extras/rpms/glusterd.toml new file mode 100644 index 000000000..7146dc609 --- /dev/null +++ b/extras/rpms/glusterd.toml @@ -0,0 +1,5 @@ +localstatedir = "/var/lib/glusterd2" +logdir = "/var/log/glusterd2" +logfile = "glusterd2.log" +peeraddress = ":24008" +clientaddress = ":24007" diff --git a/extras/rpms/glusterd2.spec b/extras/rpms/glusterd2.spec new file mode 100644 index 000000000..45f274ba3 --- /dev/null +++ b/extras/rpms/glusterd2.spec @@ -0,0 +1,81 @@ +%global _dwz_low_mem_die_limit 0 + +%global provider github +%global provider_tld com +%global project gluster +%global repo glusterd2 +%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} +%global import_path %{provider_prefix} + +Name: %{repo} +Version: 4.0dev +Release: 7 +Summary: The GlusterFS management daemon (preview) +License: GPLv2 or LGPLv3+ +URL: https://%{provider_prefix} +Source0: https://%{provider_prefix}/archive/%{version}-%{release}/%{name}-%{version}-%{release}.tar.gz +Source1: glusterd.toml + +ExclusiveArch: x86_64 + +BuildRequires: golang >= 1.8.0 +BuildRequires: glide >= 0.12.0 +BuildRequires: git +BuildRequires: mercurial +BuildRequires: systemd + +Requires: glusterfs-server >= 3.11.0 +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +%description +Preview release of the next generation GlusterFS management framework and daemon, coming with GlusterFS-4.0 + +%prep +%setup -q -n %{name}-%{commit} + +%build +mkdir -p src/%(dirname %{import_path}) +ln -s ../../../ src/%{import_path} + +pushd src/%{import_path} +# Install vendored packages +# TODO: See if we can build with unbundled packages +make vendor-install +# Build glusterd2 +make glusterd2 +popd + +%install +#Install glusterd2 binary +install -D -p -m 0755 build/%{name} %{buildroot}%{_bindir}/%{name} +#Install systemd unit +install -D -p -m 0644 extras/systemd/%{name}.service %{buildroot}%{_unitdir}/%{name}.service +#Install glusterd config into etc +install -d -m 0755 %{buildroot}%{_sysconfdir}/glusterd +install -m 0644 -t %{buildroot}%{_sysconfdir}/glusterd %{SOURCE1} +# Create /var/lib/glusterd2 +install -d -m 0755 %{buildroot}%{_sharedstatedir}/%{name} +# logdir +install -d -m 0755 %{buildroot}%{_localstatedir}/log/%{name} + +%post +%systemd_post %{name}.service + +%preun +%systemd_preun %{name}.service + +%postun +%systemd_postun %{name}.service + +%files +%{_bindir}/%{name} +%config(noreplace) %{_sysconfdir}/glusterd +%{_unitdir}/%{name}.service +%dir %{_sharedstatedir}/%{name} +%dir %{_localstatedir}/log/%{name} + +%changelog +* Mon Jul 03 2017 Kaushal M - 4.0dev-7 +- Initial spec From be3f3ebc4c8f348e2db19e714e7e489e16d5df2e Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Mon, 3 Jul 2017 19:47:09 +0530 Subject: [PATCH 4/8] Install to sbindir in the rpm ... and also change type of systemd service to the default (simple). --- extras/rpms/glusterd2.spec | 4 ++-- extras/systemd/glusterd2.service | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/extras/rpms/glusterd2.spec b/extras/rpms/glusterd2.spec index 45f274ba3..6c37bbe7a 100644 --- a/extras/rpms/glusterd2.spec +++ b/extras/rpms/glusterd2.spec @@ -49,7 +49,7 @@ popd %install #Install glusterd2 binary -install -D -p -m 0755 build/%{name} %{buildroot}%{_bindir}/%{name} +install -D -p -m 0755 build/%{name} %{buildroot}%{_sbindir}/%{name} #Install systemd unit install -D -p -m 0644 extras/systemd/%{name}.service %{buildroot}%{_unitdir}/%{name}.service #Install glusterd config into etc @@ -70,7 +70,7 @@ install -d -m 0755 %{buildroot}%{_localstatedir}/log/%{name} %systemd_postun %{name}.service %files -%{_bindir}/%{name} +%{_sbindir}/%{name} %config(noreplace) %{_sysconfdir}/glusterd %{_unitdir}/%{name}.service %dir %{_sharedstatedir}/%{name} diff --git a/extras/systemd/glusterd2.service b/extras/systemd/glusterd2.service index fc0f26272..8287d68fd 100644 --- a/extras/systemd/glusterd2.service +++ b/extras/systemd/glusterd2.service @@ -6,7 +6,6 @@ Before=network-online.target Conflicts=glusterd.service [Service] -Type=forking ExecStart=/usr/sbin/glusterd2 KillMode=process From 0c294e2f73e2b921acf287487ca807e78473ffa8 Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Mon, 3 Jul 2017 19:57:32 +0530 Subject: [PATCH 5/8] Remove addresses from rpm config --- extras/rpms/glusterd.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/extras/rpms/glusterd.toml b/extras/rpms/glusterd.toml index 7146dc609..051a89185 100644 --- a/extras/rpms/glusterd.toml +++ b/extras/rpms/glusterd.toml @@ -1,5 +1,3 @@ localstatedir = "/var/lib/glusterd2" logdir = "/var/log/glusterd2" logfile = "glusterd2.log" -peeraddress = ":24008" -clientaddress = ":24007" From d92debb32286c225a28b9269ec1b91aae4cce05c Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Tue, 4 Jul 2017 12:35:29 +0530 Subject: [PATCH 6/8] Fix archive url --- extras/rpms/glusterd2.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/rpms/glusterd2.spec b/extras/rpms/glusterd2.spec index 6c37bbe7a..9c2095f8d 100644 --- a/extras/rpms/glusterd2.spec +++ b/extras/rpms/glusterd2.spec @@ -13,7 +13,7 @@ Release: 7 Summary: The GlusterFS management daemon (preview) License: GPLv2 or LGPLv3+ URL: https://%{provider_prefix} -Source0: https://%{provider_prefix}/archive/%{version}-%{release}/%{name}-%{version}-%{release}.tar.gz +Source0: https://%{provider_prefix}/archive/v%{version}-%{release}/%{name}-v%{version}-%{release}.tar.gz Source1: glusterd.toml ExclusiveArch: x86_64 From 42a7816415b5fdf3fdbbb850120da772192054a2 Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Tue, 4 Jul 2017 12:47:29 +0530 Subject: [PATCH 7/8] Update spec file to use correct archive path --- extras/rpms/glusterd2.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/rpms/glusterd2.spec b/extras/rpms/glusterd2.spec index 9c2095f8d..26ca02c14 100644 --- a/extras/rpms/glusterd2.spec +++ b/extras/rpms/glusterd2.spec @@ -33,7 +33,7 @@ Requires(postun): systemd Preview release of the next generation GlusterFS management framework and daemon, coming with GlusterFS-4.0 %prep -%setup -q -n %{name}-%{commit} +%setup -q -n %{name}-v%{version}-%{release} %build mkdir -p src/%(dirname %{import_path}) From 24e66b61c3e6effcd18a4d6bc05cc8203a1caccb Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Tue, 4 Jul 2017 12:53:40 +0530 Subject: [PATCH 8/8] Setup GOPATH before build --- extras/rpms/glusterd2.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/extras/rpms/glusterd2.spec b/extras/rpms/glusterd2.spec index 26ca02c14..67e727604 100644 --- a/extras/rpms/glusterd2.spec +++ b/extras/rpms/glusterd2.spec @@ -36,6 +36,8 @@ Preview release of the next generation GlusterFS management framework and daemon %setup -q -n %{name}-v%{version}-%{release} %build +export GOPATH=$(pwd):%{gopath} + mkdir -p src/%(dirname %{import_path}) ln -s ../../../ src/%{import_path}