diff --git a/anda/devs/micro/anda.hcl b/anda/devs/micro/anda.hcl new file mode 100644 index 0000000000..beefa6bf82 --- /dev/null +++ b/anda/devs/micro/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "micro-nightly.spec" + } + labels { + nightly = 1 + } +} diff --git a/anda/devs/micro/micro-nightly.spec b/anda/devs/micro/micro-nightly.spec new file mode 100644 index 0000000000..bda62c22f0 --- /dev/null +++ b/anda/devs/micro/micro-nightly.spec @@ -0,0 +1,116 @@ +# Generated by go2rpm 1.15.0 +%bcond check 0 +%bcond bootstrap 0 + +%if %{with bootstrap} +%global debug_package %{nil} +%endif + +%if %{with bootstrap} +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^golang\\(.*\\)$ +%endif + +# Naming variable as something other than "commit" is necessary +# to stop %%gometa from putting commit hash in release +%global commit_hash 5a62a8ead4af741e4fc5f850fcb846974859c5a0 +%global commit_date 20250209 +%global shortcommit %{sub %{commit_hash} 1 7} +%global ver 2.0.14 + +# https://github.com/zyedidia/micro +%global goipath github.com/zyedidia/micro +Version: %{ver}^%{commit_date}git.%{shortcommit} + +%gometa -f + +%global common_description %{expand: +micro is a terminal-based text editor that aims to be easy to use and intuitive, while also taking advantage of the capabilities of modern terminals. It strives to be enjoyable as a full-time editor for people who prefer to work in a terminal, or those who regularly edit files over SSH.} + +%global golicenses LICENSE LICENSE-THIRD-PARTY +%global godocs README.md runtime/help/colors.md runtime/help/commands.md\\\ + runtime/help/copypaste.md runtime/help/defaultkeys.md\\\ + runtime/help/help.md runtime/help/keybindings.md\\\ + runtime/help/options.md runtime/help/plugins.md\\\ + runtime/help/tutorial.md + +Name: micro.nightly +Release: 1%{?dist} +Summary: A modern and intuitive terminal-based text editor + +License: MIT +URL: %{gourl} +Packager: sadlerm + +BuildRequires: anda-srpm-macros + +Provides: micro-nightly = %{version}-%{release} +Provides: micro +Conflicts: micro + +%description %{common_description} + +%gopkg + +%prep +git clone --recurse-submodules -q -j$(nproc) %{gourl} -b master && cd micro +if ! [ %{shortcommit} = $(git rev-parse --short=7 HEAD) ]; then + printf "Commit mismatch, exiting..." >&2 + exit 1 +fi + +%go_prep_online + +%build +cd micro +%if %{without bootstrap} +go generate ./runtime + +MICRO_VERSION=$(go run ./tools/build-version.go) +MICRO_DATE=$(date --date=%{commit_date} +"%%B %%d, %%Y") + +go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${GO_BUILDTAGS-${BUILDTAGS-}}" -a -x \ + -ldflags "-X internal/util.version=${MICRO_VERSION} \ + -X internal/util.hash=%{shortcommit} \ + -X 'internal/util.date=${MICRO_DATE}' \ + -B 0x$(echo "%{name}-%{version}-%{release}-${SOURCE_DATE_EPOCH:-}" | sha1sum | cut -d ' ' -f1) \ + -compressdwarf=false -linkmode=external \ + -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now \ + -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 \ + -Wl,--build-id=sha1'" \ + -o ./micro ./cmd/micro/ +%endif + +%install +%if %{without bootstrap} +install -m 0755 -vd %{buildroot}%{_bindir} \ + %{buildroot}%{_mandir}/man1 \ + %{buildroot}%{_datadir}/applications + +install -m 0755 -vp ./micro/micro %{buildroot}%{_bindir}/ +install -m 0644 -vp ./micro/assets/packaging/micro.1 %{buildroot}%{_mandir}/man1/ +install -m 0644 -vp ./micro/assets/packaging/micro.desktop %{buildroot}%{_datadir}/applications/ + +# for %%doc packaging +mkdir -v ./micro/help +mv -v ./micro/runtime/help/* ./micro/help/ +%endif + +%if %{without bootstrap} +%if %{with check} +%check +cd micro +%gotest ./internal/... ./cmd/micro/... +%endif +%endif + +%if %{without bootstrap} +%files +%license micro/LICENSE micro/LICENSE-THIRD-PARTY +%doc micro/README.md micro/help +%{_bindir}/micro +%{_mandir}/man1/micro.1.gz +%{_datadir}/applications/micro.desktop +%endif + +%changelog +%autochangelog diff --git a/anda/devs/micro/update.rhai b/anda/devs/micro/update.rhai new file mode 100644 index 0000000000..0fc1845fe8 --- /dev/null +++ b/anda/devs/micro/update.rhai @@ -0,0 +1,5 @@ +rpm.global("commit_hash", gh_commit("zyedidia/micro")); +if rpm.changed() { + rpm.global("commit_date", date()); + rpm.global("ver", gh("zyedidia/micro")); +}