Skip to content

Commit

Permalink
Merge branch 'OSGeo:master' into dymaxion
Browse files Browse the repository at this point in the history
  • Loading branch information
plouvart authored Nov 1, 2024
2 parents 2c3beb8 + de73f24 commit f0d194a
Show file tree
Hide file tree
Showing 103 changed files with 3,449 additions and 964 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/clang_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ jobs:
id: regular
PROJ_CMAKE_BUILD_OPTIONS: ""

- name: EMBED_RESOURCE_FILES
id: EMBED_RESOURCE_FILES
PROJ_CMAKE_BUILD_OPTIONS: "-DEMBED_RESOURCE_FILES=ON"

- name: Without TIFF
id: without_tiff
PROJ_CMAKE_BUILD_OPTIONS: "-DENABLE_TIFF=OFF"
Expand Down
59 changes: 59 additions & 0 deletions .github/workflows/doc_checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Docs

on:
push:
branches-ignore:
- 'backport**'
- 'dependabot**'
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
docs:
name: Documentation checks

runs-on: ubuntu-latest
strategy:
fail-fast: true
container: ghcr.io/osgeo/proj-docs

steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Update sphinx-rtd-theme
shell: bash -l {0}
run: |
pip install -U "sphinx-rtd-theme>=3.0.0"
- name: Print versions
shell: bash -l {0}
run: |
python3 --version
sphinx-build --version
python3 -m pip list --not-required --format=columns
- name: Lint .rst files
shell: bash -l {0}
run: |
set -eu
if find . -name '*.rst' | xargs grep -P '\t'; then echo 'Tabs are bad, please use four spaces in .rst files.'; false; fi
if find . -name '*.rst' | xargs grep "\.\.versionadded"; then echo 'Wrong annotation. Should be .. versionadded'; false; fi
if find . -name '*.rst' | xargs grep "\.\.note"; then echo 'Wrong annotation. Should be .. note'; false; fi
if find . -name '*.rst' | xargs grep "\.\.warning"; then echo 'Wrong annotation. Should be .. warning'; false; fi
if find . -name '*.rst' | xargs grep "\.\.codeblock"; then echo 'Wrong annotation. Should be .. codeblock'; false; fi
working-directory: ./docs
- name: Doxygen
shell: bash -l {0}
run: |
make .doxygen_up_to_date
working-directory: ./docs
- name: Spelling
shell: bash -l {0}
run: |
make spelling SPHINXOPTS=-W
working-directory: ./docs
37 changes: 37 additions & 0 deletions .github/workflows/fedora_rawhide.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Fedora Rawhide

on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:

fedora_rawhide:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Cache
uses: actions/cache@v4
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-fedora_rawhide-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-fedora_rawhide-

- name: Run
run: docker run -e CI -e WORK_DIR="$PWD" -v $PWD:$PWD fedora:rawhide $PWD/.github/workflows/fedora_rawhide/start.sh
31 changes: 31 additions & 0 deletions .github/workflows/fedora_rawhide/start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

set -e

dnf install -y cmake clang ccache ninja-build sqlite-devel libtiff-devel libcurl-devel diffutils

cd "$WORK_DIR"

if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
fi

export CCACHE_CPP2=yes

ccache -M 500M
ccache -s

mkdir build
cd build
CC=clang CXX=clang++ cmake .. \
-DEMBED_RESOURCE_FILES=ON -DUSE_ONLY_EMBEDDED_RESOURCE_FILES=ON -DUSE_CCACHE=ON -DPROJ_DB_CACHE_DIR=$HOME/.ccache ..
make -j$(nproc)
ctest -j$(nproc)
cd ..

ccache -s

echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .cache)
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ build:

jobs:
post_checkout:
- (git --no-pager log --pretty="tformat:%s -- %b" -1 | grep -viqP "skip ci|ci skip") || exit 183
- (git --no-pager log --pretty="tformat:%s -- %b" -1 | paste -s -d " " | grep -viqP "skip ci|ci skip") || exit 183
pre_build:
- ./docs/rtd/pre_build.sh
- ./scripts/doxygen.sh
Expand Down
8 changes: 4 additions & 4 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ cff-version: 1.2.0
message: Please cite this software using these metadata or in the CITATION file.
type: software
title: PROJ
version: 9.4.0
date-released: 2024-03-01
version: 9.5.0
date-released: 2024-09-15
doi: 10.5281/zenodo.5884394
abstract: PROJ is a generic coordinate transformation software that transforms
geospatial coordinates from one coordinate reference system (CRS) to another.
Expand All @@ -24,11 +24,11 @@ authors:
affiliation: Planet Labs Inc
- given-names: Kristian
family-names: Evers
affiliation: Danish Agency for Data Supply and Infrastructure
affiliation: Danish Agency for Climate Data
orcid: https://orcid.org/0000-0002-1310-4576
- given-names: Thomas
family-names: Knudsen
affiliation: Danish Agency for Data Supply and Infrastructure
affiliation: Danish Agency for Climate Data
- given-names: Howard
family-names: Butler
affiliation: Hobu Inc
Expand Down
43 changes: 42 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ message(STATUS "Configuring PROJ:")
#PROJ version information
################################################################################
include(ProjVersion)
proj_version(MAJOR 9 MINOR 5 PATCH 0)
proj_version(MAJOR 9 MINOR 6 PATCH 0)
set(PROJ_SOVERSION 25)
set(PROJ_BUILD_VERSION "${PROJ_SOVERSION}.${PROJ_VERSION}")

Expand Down Expand Up @@ -349,6 +349,45 @@ else()
message(STATUS "Testing disabled")
endif()

################################################################################
# Whether we should embed resources
################################################################################

function (is_sharp_embed_available res)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.21 AND
((CMAKE_C_COMPILER_ID STREQUAL "GNU") OR (CMAKE_C_COMPILER_ID STREQUAL "Clang")))
# CMAKE_C_STANDARD=23 only supported since CMake 3.21
set(TEST_SHARP_EMBED
"static const unsigned char embedded[] = {\n#embed __FILE__\n};\nint main() { (void)embedded; return 0;}"
)
set(CMAKE_C_STANDARD_BACKUP "${CMAKE_C_STANDARD}")
set(CMAKE_C_STANDARD "23")
check_c_source_compiles("${TEST_SHARP_EMBED}" _TEST_SHARP_EMBED)
set(CMAKE_C_STANDARD "${CMAKE_C_STANDARD_BACKUP}")
if (_TEST_SHARP_EMBED)
set(${res} ON PARENT_SCOPE)
else()
set(${res} OFF PARENT_SCOPE)
endif()
else()
set(${res} OFF PARENT_SCOPE)
endif()
endfunction()

is_sharp_embed_available(IS_SHARP_EMBED_AVAILABLE_RES)
if (NOT BUILD_SHARED_LIBS)
set(DEFAULT_EMBED_RESOURCE_FILES ON)
else()
set(DEFAULT_EMBED_RESOURCE_FILES OFF)
endif()
option(EMBED_RESOURCE_FILES "Whether resource files (limited to proj.db) should be embedded into the PROJ library" ${DEFAULT_EMBED_RESOURCE_FILES})

option(USE_ONLY_EMBEDDED_RESOURCE_FILES "Whether embedded resource files (limited to proj.db) should be used (should nominally be used together with EMBED_RESOURCE_FILES=ON, otherwise this will result in non-functional builds)" OFF)

if (USE_ONLY_EMBEDDED_RESOURCE_FILES AND NOT EMBED_RESOURCE_FILES)
message(WARNING "USE_ONLY_EMBEDDED_RESOURCE_FILES=ON set but EMBED_RESOURCE_FILES=OFF: some drivers will lack required resource files")
endif()

################################################################################
# Build configured components
################################################################################
Expand Down Expand Up @@ -432,3 +471,5 @@ endif()

configure_file(cmake/uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/proj_uninstall.cmake @ONLY)
add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/proj_uninstall.cmake)

message(STATUS "EMBED_RESOURCE_FILES=${EMBED_RESOURCE_FILES}")
69 changes: 69 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,72 @@
# PROJ Release Notes

## 9.5.0

### Updates

* Database: add constraint for unicity of CRS and operation names (#4071)

* Make a few more functions that accept a `PJ*` to actually acccept a `const PJ*` (#4074)

* Database: Increase consistency in trigger checks (#4080)

* Speed-up `+proj=cart +inv` (#4087)

* Added EPSG:9656 "Cartesian Grid Offsets" operation method, and imported related records (#4094)

* Add a `WKTParser::grammarErrorList()` method so that `proj_create_from_wkt()` can behave as documented (#4108)

* `CRS::stripVerticalComponent()`: Redirect it to `demoteTo2D(std::string(), nullptr)` (#4127)

* Add `proj_context_set_user_writable_directory()` to public API (#4144)

* CMake: for Windows builds, defaults PROJ DLL to be just `proj_${PROJ_MAJOR_VERSION}.dll` (#4167)

* Add `toWGS84AutocorrectWrongValues()` method and use it in PROJ.4 and WKT1 CRS import (#4172)

* WKT import: add support for Oracle WKT "Albers_Conical_Equal_Area" spelling (#4181)

* Limit number of C++ exceptions thrown & caught internally (#4183)

* Database: update to EPSG 11.016 (#4241)

* CMake: add option `EMBED_PROJ_DATA_PATH` (#4207)

* Add SEA Inverse projection (#4211)

* projinfo: Add 2 args equivalent to usage of `-s` and `-t` (#4218)

* CMake: add TESTING_USE_NETWORK configure option (#4220)

* Add `PROJ_ERR_COORD_TRANSFM_MISSING_TIME` and `proj_coordoperation_requires_per_coordinate_input_time()` (#4221)

* Add new Conversion "Local Orthographic" (#4228, #4229)

* Add data/ITRF2020 with ITRF2020 to ITRFother, and ITRF2020 plate motion models (#4235)

### Bug Fixes

* Fix `imoll` and `imoll_o` zone calculations to correct inverse transformations near the "seams" (#4159)

* Fix wrong EPSG conversion code for UTM south (#4166)

* BoundCRS::exportToPROJ(): handle case of NADCON conus grid (#4168)

* `+proj=gridshift`: make projected grids work with `PROJ_NETWORK=ON` (#4174)

* `createOperations()`: make it work when transforming from/to a CompoundCRS with a DerivedVerticalCRS with ellipsoidal height (#4176)

* Support default context as `nullptr` in `CoordinateTransformer` (#4177)

* cct: emit error message and return error code when not being able to open input file (#4200)

* Fix race condition surrounding DB reopening during fork (#4231)

* `GeographicBoundingBox::create()`: accept degenerate bounding box reduced to a point or a line (#4237)

* `createOperation()`: tune so that ITRF2000->ETRS89 does not return only NKG grid based operations but also time-dependent Helmert (#4244)


## 9.4.1

### Updates
Expand All @@ -8,6 +75,8 @@

* Database: update ESRI dataset to ArcGIS Pro 3.3 (#4143)

* Process `EPSG_CODE_METHOD_VERTICALGRID_GTG` properly with code 1129 (#4213)

### Bug fixes

* DatabaseContext::lookForGridInfo(): do not trigger network activity in
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,4 @@ automatically fetch resource files that are not present locally from the CDN.
## Citing PROJ in publications

See [CITATION](CITATION)

Loading

0 comments on commit f0d194a

Please sign in to comment.