diff --git a/Makefile b/Makefile index a1b0feb7..09acaf71 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,7 @@ STRIP = $(shell which strip) PANDOC = $(shell which pandoc) GIT2DEBCL = ./tools/git2debcl CPPFIND = ./tools/cppfind +RPMBUILD = $(shell which rpmbuild) ifeq ($(PKGCONFIG),"") $(error "pkg-config not installed") @@ -118,7 +119,7 @@ obj/%.o: src/%.cpp $(CXX) $(CFLAGS) -c $< -o $@ clean: - $(RM) -rf obj "$(TARGET)" "$(MANPAGE)" + $(RM) -rf obj "$(TARGET)" "$(MANPAGE)" rpmbuild $(FIND) -name "*~" -delete distclean: clean @@ -154,6 +155,13 @@ deb: $(GIT2DEBCL) $(TARGET) $(VERSION) > debian/changelog $(GIT) buildpackage --git-ignore-new +rpm: + $(eval VERSION := $(subst -,_,$(shell $(GIT) describe --always --tags --dirty))) + $(RPMBUILD) -bb $(TARGET).spec \ + --define "_topdir $(CURDIR)/rpmbuild" \ + --define "_builddir $(CURDIR)" \ + --define "pkg_version $(VERSION)" + .PHONY: all clean install help include $(wildcard obj/*.d) diff --git a/mergerfs.spec b/mergerfs.spec new file mode 100644 index 00000000..4e82953e --- /dev/null +++ b/mergerfs.spec @@ -0,0 +1,37 @@ +Name: mergerfs +Version: %{pkg_version} +Release: 1%{?dist} +Summary: A FUSE union filesystem + +Group: Applications/System +License: MIT +URL: https://github.com/trapexit/mergerfs + +BuildRequires: gcc-c++ +BuildRequires: libattr-devel +BuildRequires: fuse-devel +# rpmbuild driven by the Makefile uses git to generate a version number +BuildRequires: git +# pandoc pulls in ~60 packages (87M installed) from EPEL :( +BuildRequires: pandoc + +Requires: fuse-libs + +%description +mergerfs is similar to mhddfs, unionfs, and aufs. Like mhddfs in that it too +uses FUSE. Like aufs in that it provides multiple policies for how to handle +behavior. + +%build +make %{?_smp_mflags} + +%install +make install DESTDIR=%{buildroot} + +%files +%{_bindir}/* +%doc %{_mandir}/* + +%changelog +* Fri Jun 20 2014 Joe Lawrence +- Initial rpm spec file.