1
Fork 0
copr/hugo/hugo.spec

142 lines
4.8 KiB
RPMSpec

%bcond_without check
# Some tests use a package that uses this.
%bcond_with bootstrap
# The output from a standard Hugo package build can be overwhelming when
# trying to diagnose package build errors. A less verbose follow up
# is:
#
# 1. Run "rpmbuild -ba hugo.spec >/tmp/LOG 2>&1" to capture all of
# the output.
#
# 2. Look for the command "go build ..." in that output.
#
# 3. Enter the BUILD/hugo-VERSION directory.
#
# 4. Export the two variables set before "go build ...".
#
# 5. Run the "go build ..." command, but without the "-v" and "-x".
# https://github.com/gohugoio/hugo
%global goipath github.com/gohugoio/hugo
Version: 0.140.2
%gometa -f
%global common_description %{expand:
Hugo is a static HTML and CSS website generator written in Go. It is optimized
for speed, easy use and configurability. Hugo takes a directory with content
and templates and renders them into a full HTML website.}
%global golicenses LICENSE docs/LICENSE.md docs/themes/gohugoioTheme/license.md
%global godocs docs examples README.md CONTRIBUTING.md
Name: hugo
Release: %autorelease
Summary: The world’s fastest framework for building websites
# Upstream license specification: Apache-2.0 and MIT
# Automatically converted from old format: ASL 2.0 and MIT - review is highly recommended.
License: Apache-2.0 AND LicenseRef-Callaway-MIT
URL: %{gourl}
Source0: %{gosource}
# Skip tests that uses the network.
# Based on https://sources.debian.org/data/main/h/hugo/0.58.3-1/debian/patches/0005-skip-modules-TestClient.patch
Patch0001: 0010-skip-modules-TestClient.patch
BuildRequires: golang(github.com/bep/golibsass/libsass) >= 0.7.0
BuildRequires: golang-github-gohugoio-hugo-goldmark-extensions-devel
# This is in response to Red Hat Bugzilla #2104346. The full dependencies
# for Hugo are large, including GCC and the Go toolchain. For example,
# "hugo server" will not work without these. It might be beneficial to avoid
# such large dependencies in some instances---such as CI pipelines---that
# do not require "hugo server". Thus golang-bin is a weak dependency.
#
# Also see the discussion at https://src.fedoraproject.org/rpms/hugo/pull-request/13.
Recommends: golang-bin
%description
%{common_description}
%gopkg
%prep
%goprep
# See https://github.com/gohugoio/hugo/issues/9860
sed -i 's|github.com/clbanning/mxj/v2|github.com/clbanning/mxj|' $(find . -iname '*.go' -type f)
# See https://github.com/gohugoio/hugo/issues/9860
# and https://github.com/nicksnyder/go-i18n/pull/253
# and https://bugzilla.redhat.com/show_bug.cgi?id=2031583
sed -i 's|github.com/gohugoio/go-i18n/v2|github.com/nicksnyder/go-i18n/v2|' $(find . -iname '*.go' -type f)
%autopatch -p1
# Replace blackfriday import path to avoid conflict with v2
sed -i \
-e 's|"github.com/russross/blackfriday|"gopkg.in/russross/blackfriday.v1|' \
$(find . -name '*.go')
# Skip test that assumes directory is in a git repository
sed -i '/TestPageWithLastmodFromGitInfo/a t.Skip()' hugolib/page_test.go
%if %{with bootstrap}
# Delete test using github.com/gohugoio/testmodBuilder/mods which has a
# dependency loop.
rm hugolib/hugo_modules_test.go
%endif
%generate_buildrequires
%go_generate_buildrequires
%build
BUILDTAGS="extended" LDFLAGS="${LDFLAGS} -X %{goipath}/common/hugo.buildDate=$(date --iso=seconds --date=@$SOURCE_DATE_EPOCH) -X %{goipath}/common/hugo.vendorInfo=Fedora:%{version}-%{release}" %gobuild -o %{gobuilddir}/bin/hugo %{goipath}
%{gobuilddir}/bin/hugo completion bash >hugo-completion
%{gobuilddir}/bin/hugo gen man
%install
%gopkginstall
install -d -p %{buildroot}%{_bindir}
install -Dp -m 0755 %{gobuilddir}/bin/hugo %{buildroot}%{_bindir}
install -Dp hugo-completion %{buildroot}%{_datadir}/bash-completion/completions/hugo
install -Dp man/* -t %{buildroot}%{_mandir}/man1
%if %{with check}
%check
# .: Extensive test that uses network.
# hugolib: panic: runtime error: invalid memory address or nil pointer dereference
# hugolib/pagesfromdata: panic: runtime error: invalid memory address or nil pointer dereference
# langs/i18n: fails with current Rawhide
# markup/goldmark: fails with current Rawhide.
# resources/resource_factories/create: fails with current Rawhide.
# tpl/internal/go_templates/htmltemplate: fails with current Rawhide.
# tpl/internal/go_templates/texttemplate: fails with current Rawhide.
# tpl/internal/go_templates/texttemplate/parse: fails with current Rawhide.
%gocheck \
-d . \
-d hugolib \
-d hugolib/pagesfromdata \
-d langs/i18n \
-d markup/goldmark \
-d resources/resource_factories/create \
-d tpl/internal/go_templates/htmltemplate \
-d tpl/internal/go_templates/texttemplate \
-d tpl/internal/go_templates/texttemplate/parse \
%endif
%files
%doc CONTRIBUTING.md README.md docs
%license LICENSE
%{_bindir}/hugo
%{_datadir}/bash-completion/completions/hugo
%{_mandir}/man1/*.1*
%gopkgfiles
%changelog
%autochangelog