Some checks failed
		
		
	
	BlockStorage/repertory_osx/pipeline/head This commit looks good
				
			BlockStorage/repertory_windows/pipeline/head This commit looks good
				
			BlockStorage/repertory/pipeline/head There was a failure building this commit
				
			BlockStorage/repertory_linux_builds/pipeline/head This commit looks good
				
			BlockStorage/repertory_osx_builds/pipeline/head There was a failure building this commit
				
			### Issues
* \#1 \[bug\] Unable to mount S3 due to 'item_not_found' exception
* \#2 Require bucket name for S3 mounts
* \#3 \[bug\] File size is not being updated in S3 mount
* \#4 Upgrade to libfuse-3.x.x
* \#5 Switch to renterd for Sia support
* \#6 Switch to cpp-httplib to further reduce dependencies
* \#7 Remove global_data and calculate used disk space per provider
* \#8 Switch to libcurl for S3 mount support
### Changes from v1.x.x
* Added read-only encrypt provider
  * Pass-through mount point that transparently encrypts source data using `XChaCha20-Poly1305`
* Added S3 encryption support via `XChaCha20-Poly1305`
* Added replay protection to remote mounts
* Added support base64 writes in remote FUSE
* Created static linked Linux binaries for `amd64` and `aarch64` using `musl-libc`
* Removed legacy Sia renter support
* Removed Skynet support
* Fixed multiple remote mount WinFSP API issues on \*NIX servers
* Implemented chunked read and write
  * Writes for non-cached files are performed in chunks of 8Mib
* Removed `repertory-ui` support
* Removed `FreeBSD` support
* Switched to `libsodium` over `CryptoPP`
* Switched to `XChaCha20-Poly1305` for remote mounts
* Updated `GoogleTest` to v1.14.0
* Updated `JSON for Modern C++` to v3.11.2
* Updated `OpenSSL` to v1.1.1w
* Updated `RocksDB` to v8.5.3
* Updated `WinFSP` to 2023
* Updated `boost` to v1.78.0
* Updated `cURL` to v8.3.0
* Updated `zlib` to v1.3
* Use `upload_manager` for all providers
  * Adds a delay to uploads to prevent excessive API calls
  * Supports re-upload after mount restart for incomplete uploads
  * NOTE: Uploads for all providers are full file (no resume support)
    * Multipart upload support is planned for S3
Reviewed-on: #9
		
	
		
			
				
	
	
		
			100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| .SUFFIXES:
 | |
| MAKEFLAGS+=-r
 | |
| 
 | |
| config=debug
 | |
| defines=standard
 | |
| cxxstd=c++11
 | |
| # set cxxstd=any to disable use of -std=...
 | |
| 
 | |
| BUILD=build/make-$(firstword $(CXX))-$(config)-$(defines)-$(cxxstd)
 | |
| 
 | |
| SOURCES=src/pugixml.cpp $(filter-out tests/fuzz_%,$(wildcard tests/*.cpp))
 | |
| EXECUTABLE=$(BUILD)/test
 | |
| 
 | |
| VERSION=$(shell sed -n 's/.*version \(.*\).*/\1/p' src/pugiconfig.hpp)
 | |
| RELEASE=$(filter-out scripts/archive.py docs/%.adoc,$(shell git ls-files docs scripts src CMakeLists.txt LICENSE.md readme.txt))
 | |
| 
 | |
| CXXFLAGS=-g -Wall -Wextra -Werror -pedantic -Wundef -Wshadow -Wcast-align -Wcast-qual -Wold-style-cast -Wdouble-promotion
 | |
| LDFLAGS=
 | |
| 
 | |
| ifeq ($(config),release)
 | |
| 	CXXFLAGS+=-O3 -DNDEBUG
 | |
| endif
 | |
| 
 | |
| ifeq ($(config),coverage)
 | |
| 	CXXFLAGS+=-coverage
 | |
| 	LDFLAGS+=-coverage
 | |
| endif
 | |
| 
 | |
| ifeq ($(config),sanitize)
 | |
| 	CXXFLAGS+=-fsanitize=address,undefined -fno-sanitize=float-divide-by-zero,float-cast-overflow -fno-sanitize-recover=all
 | |
| 	LDFLAGS+=-fsanitize=address,undefined
 | |
| endif
 | |
| 
 | |
| ifeq ($(config),analyze)
 | |
| 	CXXFLAGS+=--analyze
 | |
| endif
 | |
| 
 | |
| ifneq ($(defines),standard)
 | |
| 	COMMA=,
 | |
| 	CXXFLAGS+=-D $(subst $(COMMA), -D ,$(defines))
 | |
| endif
 | |
| 
 | |
| ifneq ($(findstring PUGIXML_NO_EXCEPTIONS,$(defines)),)
 | |
| 	CXXFLAGS+=-fno-exceptions
 | |
| endif
 | |
| 
 | |
| ifneq ($(cxxstd),any)
 | |
| 	CXXFLAGS+=-std=$(cxxstd)
 | |
| endif
 | |
| 
 | |
| OBJECTS=$(SOURCES:%=$(BUILD)/%.o)
 | |
| 
 | |
| all: $(EXECUTABLE)
 | |
| 
 | |
| ifeq ($(config),coverage)
 | |
| test: $(EXECUTABLE)
 | |
| 	-@find $(BUILD) -name '*.gcda' -exec rm {} +
 | |
| 	./$(EXECUTABLE)
 | |
| 	@gcov -b -o $(BUILD)/src/ pugixml.cpp.gcda | sed -e '/./{H;$!d;}' -e 'x;/pugixml.cpp/!d;'
 | |
| 	@find . -name '*.gcov' -and -not -name 'pugixml.cpp.gcov' -exec rm {} +
 | |
| 	@sed -i -e "s/#####\(.*\)\(\/\/ unreachable.*\)/    1\1\2/" pugixml.cpp.gcov
 | |
| else
 | |
| test: $(EXECUTABLE)
 | |
| 	./$(EXECUTABLE)
 | |
| endif
 | |
| 
 | |
| fuzz_%: $(BUILD)/fuzz_%
 | |
| 	@mkdir -p build/$@
 | |
| 	$< build/$@ tests/data_fuzz_$* -max_len=1024 -dict=tests/fuzz_$*.dict
 | |
| 
 | |
| clean:
 | |
| 	rm -rf $(BUILD)
 | |
| 
 | |
| release: build/pugixml-$(VERSION).tar.gz build/pugixml-$(VERSION).zip
 | |
| 
 | |
| docs: docs/quickstart.html docs/manual.html
 | |
| 
 | |
| build/pugixml-%: .FORCE | $(RELEASE)
 | |
| 	@mkdir -p $(BUILD)
 | |
| 	TIMESTAMP=`git show v$(VERSION) -s --format=%ct` && python3 scripts/archive.py $@ pugixml-$(VERSION) $$TIMESTAMP $|
 | |
| 
 | |
| $(EXECUTABLE): $(OBJECTS)
 | |
| 	$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
 | |
| 
 | |
| $(BUILD)/fuzz_%: tests/fuzz_%.cpp src/pugixml.cpp
 | |
| 	@mkdir -p $(BUILD)
 | |
| 	$(CXX) $(CXXFLAGS) -fsanitize=address,fuzzer $^ -o $@
 | |
| 
 | |
| $(BUILD)/%.o: %
 | |
| 	@mkdir -p $(dir $@)
 | |
| 	$(CXX) $< $(CXXFLAGS) -c -MMD -MP -o $@
 | |
| 
 | |
| -include $(OBJECTS:.o=.d)
 | |
| 
 | |
| .SECONDEXPANSION:
 | |
| docs/%.html: docs/%.adoc $$(shell sed -n 's/include\:\:\(.*\)\[.*/docs\/\1/p' docs/%.adoc)
 | |
| 	asciidoctor -b html5 -a version=$(VERSION) $< -o $@
 | |
| 
 | |
| .PHONY: all test clean release .FORCE
 |