Skip to content

Commit 20ff07f

Browse files
authored
Merge pull request #174 from akrherz/gh173_dfmfrq
Fix dfmfrq and Fix CI
2 parents cb06709 + 7b3b43a commit 20ff07f

File tree

43 files changed

+223
-158
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+223
-158
lines changed

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "monthly"
7+
labels:
8+
- "Bot"
9+
groups:
10+
github-actions:
11+
patterns:
12+
- '*'

.github/workflows/main.yml

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,37 @@ name: CI
33
on: ["push", "pull_request"]
44

55
jobs:
6-
build_ubuntu:
7-
name: Build Ubuntu
8-
runs-on: ubuntu-latest
9-
steps:
10-
- uses: actions/checkout@v2
11-
12-
- name: build
13-
run: |
14-
sudo apt-get update
15-
sudo apt install gcc build-essential libx11-dev libxt-dev libxext-dev libxft-dev libxtst-dev
16-
sudo apt install flex byacc libmotif-common libmotif-dev libxpm4 libxpm-dev
17-
sudo apt install gfortran
18-
. Gemenviron.profile
19-
rm -f config/Makeinc.linux64_gfortran
20-
ln -s `pwd`/config/Makeinc.linux64_gfortran_ubuntu config/Makeinc.linux64_gfortran
21-
make all
22-
236
build:
24-
name: Build Centos (${{ matrix.OS_VERSION }})
7+
name: Build ${{ matrix.os_type }} (${{ matrix.os_version }})
258
runs-on: ubuntu-latest
9+
permissions:
10+
contents: write
2611
strategy:
2712
matrix:
28-
OS_VERSION: ["7", "stream8"]
29-
env:
30-
OS_VERSION: ${{ matrix.OS_VERSION }}
31-
OS_TYPE: "centos"
13+
include:
14+
- os_type: ubuntu
15+
os_version: "24.04"
16+
container_image: ubuntu:24.04
17+
release_glob: build/dist/*.deb
18+
- os_type: almalinux
19+
os_version: "8"
20+
container_image: quay.io/almalinuxorg/8-base
21+
release_glob: build/dist/*.rpm
3222
steps:
33-
- uses: actions/checkout@v2
23+
- uses: actions/checkout@v4
24+
25+
- name: Pull container image
26+
run: |
27+
sudo docker pull ${{ matrix.container_image }}
3428
3529
- name: build
3630
run: |
37-
echo 'DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -s devicemapper"' | sudo tee /etc/default/docker > /dev/null
38-
sudo service docker restart
39-
sleep 5
40-
sudo docker pull quay.io/centos/${OS_TYPE}:${OS_VERSION}
41-
build/setup.sh ${OS_TYPE} ${OS_VERSION}
31+
build/setup.sh ${{ matrix.os_type }} ${{ matrix.os_version }}
4232
33+
- name: Attach assets to GitHub Release
34+
if: github.ref_type == 'tag'
35+
uses: softprops/action-gh-release@v2
36+
with:
37+
files: |
38+
${{ matrix.release_glob }}
39+
fail_on_unmatched_files: true

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
<!-- markdownlint-configure-file {"MD024": { "siblings_only": true } } -->
22
# Unidata Community GEMPAK Change Log
33

4+
## Unreleased Version
5+
6+
- Previously when building, `make` errors would not error the build. This will
7+
be changing going forward so to prevent broken builds. The year is 2026.
8+
49
## 7.20.0 (16 Jan 2026)
510

611
This release merges NCEP NAWIPS 7.20.0.

Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ SUBDIRS = \
3535
all : INSTALLDIRS
3636
@for dir in $(SUBDIRS); do \
3737
( cd $$dir; echo "Making $@ in `pwd`" ; \
38-
$(MAKE) $(MFLAGS) $@ ) ; \
38+
$(MAKE) $(MFLAGS) $@ ) || exit $$?; \
3939
done
4040

4141
All : all
@@ -71,7 +71,7 @@ install : INSTALLDIRS
7171
NODIR) ;; \
7272
*) if [ -d $$dir ]; then \
7373
(cd $$dir; echo "Making $@ in `pwd`" ; \
74-
$(MAKE) $(MFLAGS) $@) ; \
74+
$(MAKE) $(MFLAGS) $@) || exit $$?; \
7575
else \
7676
echo "Skipping $$dir"; \
7777
fi; \
@@ -85,7 +85,7 @@ install : INSTALLDIRS
8585
NODIR) ;; \
8686
*) if [ -d $$dir ]; then \
8787
(cd $$dir; echo "Making $@ in `pwd`" ; \
88-
$(MAKE) $(MFLAGS) $@) ; \
88+
$(MAKE) $(MFLAGS) $@) || exit $$?; \
8989
else \
9090
echo "Skipping $$dir"; \
9191
fi; \
@@ -101,7 +101,7 @@ clean:
101101
NODIR) ;; \
102102
*) if [ -d $$dir ]; then \
103103
(cd $$dir; echo "Making $@ in `pwd`" ; \
104-
$(MAKE) $(MFLAGS) $@) ; \
104+
$(MAKE) $(MFLAGS) $@) || exit $$?; \
105105
else \
106106
echo "Skipping $$dir"; \
107107
fi; \

build/DEBIAN/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ Version: 7.20.0
33
Maintainer: Daryl Herzmann
44
Architecture: all
55
Description: Unidata GEMPAK Distribution
6-
Depends: libgfortran3, libx11-6, libxm4, libxtst6, libxt6
6+
Depends: libgfortran5 | libgfortran4 | libgfortran3, libx11-6, libxm4, libxtst6, libxt6
77
Homepage: https://www.unidata.ucar.edu/software/gempak/

build/Installer.gempak/fedora.spec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ rm -rf Makeinc.linux64_gfortran
5454
ln -s Makeinc.linux64_gfortran_fedora Makeinc.linux64_gfortran
5555
popd
5656

57+
make extlibs #>& make.extlibs
5758
make gempak #>& make.gempak
5859
make install >& /dev/null
5960
make programs_gf >& /dev/null

build/Installer.gempak/gempak.spec

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,19 @@ tar -xvzf /tmp/rpmbuild/SOURCES/gempak-%{version}.tar.gz -C %{prefix}/ >& /dev/n
4242

4343
%install
4444
# create build root directory
45+
set -ex
4546
pushd %{gem_home}
4647
export NAWIPS=`pwd`
4748
cat source_python.sh
4849
cat source_python.sh >> build/Installer.gempak/Gemenviron.profile
4950
. build/Installer.gempak/Gemenviron.profile
5051
# TODO: ". source_python.sh" doesn't seem to work from spec file
52+
make extlibs #>& make.extlibs
5153
make gempak #>& make.gempak
52-
make install >& /dev/null
53-
make programs_gf >& /dev/null
54-
make programs_nc >& /dev/null
55-
make clean >& /dev/null
54+
make install
55+
make programs_gf
56+
make programs_nc
57+
make clean
5658

5759
#grep -i error make.gempak
5860
#rm -rf make.gempak
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#!/bin/sh -xe
22

3-
# runs on centos7, so no dnf
4-
yum -y -q install make gcc-gfortran git rpm-build byacc flex libX11-devel libXext libXft-devel libXp-devel libXt-devel libXtst-devel openmotif-devel xorg-x11-xbitmaps autoconf libtool automake
3+
dnf -y -q install make gcc-gfortran gcc-c++ git rpm-build byacc flex libX11-devel libXext libXft-devel libXp-devel libXt-devel libXtst-devel openmotif-devel xorg-x11-xbitmaps autoconf libtool automake libxml2-devel libxslt-devel
54

65
useradd gempak
76

build/build_ubuntu.sh

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,43 @@
11
#!/bin/sh -xe
22
ls -l /home
33

4+
export DEBIAN_FRONTEND=noninteractive
5+
apt-get update -y
6+
apt-get install -y --no-install-recommends \
7+
git gcc gfortran build-essential \
8+
libx11-dev libxt-dev libxext-dev libxft-dev libxtst-dev \
9+
flex byacc libmotif-common libmotif-dev libxpm4 libxpm-dev \
10+
dpkg-dev ca-certificates
11+
412
# Package GEMPAK source from HEAD
513
pushd /gempak
614
package_version=`grep "define version" build/Installer.gempak/gempak.spec | grep -v version_core| awk '{print $3}'`
7-
git archive --format=tar --prefix=gempak-${package_version}/ HEAD | gzip >/tmp/gempak-${package_version}.tar.gz
15+
git config --global --add safe.directory /gempak
16+
git archive --format=tar --prefix=gempak-${package_version}/ -o /tmp/gempak-${package_version}.tar HEAD
17+
gzip -f /tmp/gempak-${package_version}.tar
818

919
# Prepare the environment
1020
mkdir -p /tmp/gempak-${package_version}/
1121

1222
cp -r /gempak/build/DEBIAN /tmp/gempak-${package_version}/
1323

1424
mkdir -p /home/gempak/
25+
srcdir=$(tar -tzf /tmp/gempak-${package_version}.tar.gz | awk -F/ 'NF>1{print $1; exit}')
26+
if [ -z "$srcdir" ]; then
27+
echo "Failed to determine top-level source directory from /tmp/gempak-${package_version}.tar.gz" >&2
28+
exit 1
29+
fi
1530
tar -xvzf /tmp/gempak-${package_version}.tar.gz -C /home/gempak >& /dev/null
31+
rm -rf /home/gempak/GEMPAK7
32+
mv "/home/gempak/${srcdir}" /home/gempak/GEMPAK7
1633
pushd /home/gempak
17-
mv gempak-${package_version} GEMPAK7
1834
cd GEMPAK7
1935
. Gemenviron.profile
20-
export PYINC="-I/usr/include/python2.7"
21-
export PYLIB="-lpython2.7"
22-
export WITHPY="-DWITHPYTHON"
23-
export PYDEP="-lpthread -lutil -ldl"
24-
export LDFLAGS="-L/usr/lib -L$OS_LIB -s"
36+
export PYINC=""
37+
export PYLIB=""
38+
export WITHPY=""
39+
export PYDEP=""
40+
export LDFLAGS="-L$OS_LIB -s"
2541

2642
pushd config
2743
rm -rf Makeinc.linux64_gfortran
@@ -61,4 +77,4 @@ cp gempak-${package_version}.deb /gempak/build/dist/
6177
# Confirm install with dependencies
6278
apt-get update -y
6379
dpkg -i gempak-${package_version}.deb
64-
apt-get -f install
80+
apt-get -f install -y

build/setup.sh

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,48 @@
11
#!/bin/sh -xe
2-
# ./setup.sh centos 7
3-
# ./setup.sh centos stream8
4-
# ./setup.sh centos stream9
2+
# ./setup.sh almalinux 9
3+
# ./setup.sh almalinux 10
54
# ./setup.sh fedora latest
65
# ./setup.sh ubuntu latest
76

87
os_type=$1
98
os_version=$2
109
TAG=${os_type}${os_version}
1110

11+
if [ -z "$os_type" ] || [ -z "$os_version" ]; then
12+
echo "Usage: $0 <dev|almalinux|ubuntu|fedora> <version>" >&2
13+
exit 2
14+
fi
15+
1216
# Run builds in Container
1317

1418
if [ "$os_type" = "dev" ]; then
15-
16-
# sudo docker run --entrypoint=/bin/bash --privileged -d -ti -e "container=docker" -v /awips2/repo/${dn}:/awips2/repo/${dn} $imgname:$imgvers-$os_version
17-
sudo docker run -v `pwd`:/gempak:rw unidata/gempak-devel:centos6 /bin/bash -c "bash -xe /gempak/build/build_dev.sh"
1819

19-
elif [ "$os_type" = "centos" ]; then
20+
# sudo docker run --entrypoint=/bin/bash --privileged -d -ti -e "container=docker" -v /awips2/repo/${dn}:/awips2/repo/${dn} $imgname:$imgvers-$os_version
21+
sudo docker run -v `pwd`:/gempak:rw unidata/gempak-devel:centos6 /bin/bash -c "bash -xe /gempak/build/build_dev.sh"
22+
23+
elif [ "$os_type" = "almalinux" ]; then
2024

21-
sudo docker run --privileged -d -ti -e "container=docker" -v `pwd`:/gempak:rw quay.io/centos/centos:$os_version /bin/bash
22-
DOCKER_CONTAINER_ID=$(sudo docker ps | grep ${os_version} | awk '{print $1}' | head -1 )
25+
CONTAINER_IMAGE=quay.io/almalinuxorg/${os_version}-base
26+
BUILD_SCRIPT=build_almalinux.sh
27+
28+
DOCKER_CONTAINER_ID=$(sudo docker run --privileged -d -ti -e "container=docker" -v `pwd`:/gempak:rw $CONTAINER_IMAGE /bin/bash)
2329
sudo docker logs $DOCKER_CONTAINER_ID
24-
sudo docker exec --tty $DOCKER_CONTAINER_ID /bin/bash -xec "bash -xe /gempak/build/build_${os_type}.sh ${os_version}";
30+
sudo docker exec --tty $DOCKER_CONTAINER_ID /bin/bash -xec "bash -xe /gempak/build/${BUILD_SCRIPT} ${os_version}";
2531
sudo docker ps -a
2632
sudo docker stop $DOCKER_CONTAINER_ID
2733
sudo docker rm -v $DOCKER_CONTAINER_ID
2834

2935
elif [ "$os_type" = "ubuntu" ]; then
3036

31-
sudo docker run --rm=true -v `pwd`:/gempak:rw unidata/gempak-devel:$os_type /bin/bash -c "bash -xe /gempak/build/build_${os_type}.sh "
37+
sudo docker run --rm=true -v `pwd`:/gempak:rw ubuntu:${os_version} /bin/bash -c "bash -xe /gempak/build/build_${os_type}.sh "
3238

3339
elif [ "$os_type" = "fedora" ]; then
3440

3541
sudo docker run --rm=true -v `pwd`:/gempak:rw unidata/gempak-devel:$os_type /bin/bash -c "bash -xe /gempak/build/build_${os_type}.sh"
3642

43+
else
44+
45+
echo "Unsupported os_type '$os_type'. Expected one of: dev, almalinux, ubuntu, fedora." >&2
46+
exit 2
47+
3748
fi

0 commit comments

Comments
 (0)