From: Matthew Fernandez Date: Sat, 30 Oct 2021 19:39:40 +0000 (-0700) Subject: do not create packaging hierarchy directory for architecture X-Git-Tag: 2.50.0~50^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=59377c02ae71834b329bff763302ed6fab391875;p=graphviz do not create packaging hierarchy directory for architecture The packaging directories were created based on various dimensions of a matrix, with architecture at the lowest level. On Linux and macOS, Graphviz is only packaged for a single architecture (x86-64). On Windows, Graphviz is only packaged for two architectures (x86 and x86-64). However, the architecture is also present in the suffix of every packaged file. E.g. Graphviz-2.49.3-win32.exe Graphviz-2.49.3-win64.exe graphviz-nox-2.49.3-1.fc33.x86_64.rpm So there is no ambiguity if we drop the architecture directory. This seems to be a case of YAGNI¹ where the system was setup to accommodate multiple architectures but this has not been needed. We remove it now to (1) reduce complexity and (2) have less verbose release filenames.² Closes #2149. ¹ https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it ² Example of a current verbose release filename, stable_windows_10_cmake_Release_Win32_graphviz-install-2.49.3-win32.exe --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7c68cf2d2..b7ed81dbf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -47,7 +47,6 @@ portable-source: when: on_success expire_in: 1 week paths: - - Packages/*/*/*/*/*/*.rpm - Packages/*/*/*/*/*.rpm - Metadata/*/*/*/configure.log - GRAPHVIZ_VERSION @@ -70,7 +69,7 @@ portable-source: when: on_success expire_in: 1 week paths: - - Packages/*/*/*/*/*/*deb + - Packages/*/*/*/*/*deb - Metadata/*/*/*/configure.log - GRAPHVIZ_VERSION - COLLECTION @@ -102,8 +101,8 @@ portable-source: paths: - GRAPHVIZ_VERSION - COLLECTION - - Packages/*/*/*/*/*/*.zip - - Packages/*/*/*/*/*/*.tar.gz + - Packages/*/*/*/*/*.zip + - Packages/*/*/*/*/*.tar.gz - Metadata/*/*/*/configure.log reports: metrics: metrics.txt @@ -197,7 +196,7 @@ portable-source: - $ID = "windows" - $VERSION_ID = "10" - $COLLECTION = $( cat COLLECTION ) - - $DIR = "Packages\${COLLECTION}\${ID}\${VERSION_ID}\$env:build_system\$env:configuration\$Env:project_platform" + - $DIR = "Packages\${COLLECTION}\${ID}\${VERSION_ID}\$env:build_system\$env:configuration" - mkdir -p $DIR - >- if($env:build_system -eq "cmake") { @@ -209,8 +208,8 @@ portable-source: when: on_success expire_in: 1 week paths: - - Packages/*/*/*/*/*/*/*.exe - - Packages/*/*/*/*/*/*/*.zip + - Packages/*/*/*/*/*/*.exe + - Packages/*/*/*/*/*/*.zip reports: metrics: metrics.txt junit: report.xml @@ -403,8 +402,8 @@ ubuntu21-04-static-build: when: on_success expire_in: 1 week paths: - - Packages/*/*/*/*/*/*deb - - Packages/*/*/*/*/*/*.xz + - Packages/*/*/*/*/*deb + - Packages/*/*/*/*/*.xz - Metadata/*/*/*/configure.log - GRAPHVIZ_VERSION - COLLECTION @@ -429,8 +428,8 @@ ubuntu21-10-static-build: when: on_success expire_in: 1 week paths: - - Packages/*/*/*/*/*/*deb - - Packages/*/*/*/*/*/*.xz + - Packages/*/*/*/*/*deb + - Packages/*/*/*/*/*.xz - Metadata/*/*/*/configure.log - GRAPHVIZ_VERSION - COLLECTION @@ -494,7 +493,7 @@ windows-cygwin-build: paths: - GRAPHVIZ_VERSION - COLLECTION - - Packages/*/*/*/*/*/*.xz + - Packages/*/*/*/*/*.xz tags: - windows except: @@ -522,7 +521,7 @@ windows-cygwin-build-using-autogen: expire_in: 1 week paths: - COLLECTION - - Packages/*/*/*/*/*/*.xz + - Packages/*/*/*/*/*.xz tags: - windows except: @@ -664,7 +663,7 @@ ubuntu21-04-cmake-ASan-build-for-ctest: # the dot program is needed to configure the plugins before running pre-install tests - build/cmd/dot/dot # the packages need to be installed for the post-install tests - - Packages/*/*/*/*/*/*deb + - Packages/*/*/*/*/*deb - Metadata/*/*/*/configure.log reports: metrics: metrics.txt @@ -709,7 +708,7 @@ ubuntu21-10-cmake-ASan-build-for-ctest: # the dot program is needed to configure the plugins before running pre-install tests - build/cmd/dot/dot # the packages need to be installed for the post-install tests - - Packages/*/*/*/*/*/*deb + - Packages/*/*/*/*/*deb - Metadata/*/*/*/configure.log reports: metrics: metrics.txt @@ -806,8 +805,8 @@ windows-mingw32-cmake-build: expire_in: 1 week paths: - COLLECTION - - Packages/*/*/*/*/*/*.exe - - Packages/*/*/*/*/*/*.zip + - Packages/*/*/*/*/*.exe + - Packages/*/*/*/*/*.zip tags: - windows except: @@ -827,8 +826,8 @@ windows-mingw64-cmake-build: expire_in: 1 week paths: - COLLECTION - - Packages/*/*/*/*/*/*.exe - - Packages/*/*/*/*/*/*.zip + - Packages/*/*/*/*/*.exe + - Packages/*/*/*/*/*.zip tags: - windows except: @@ -852,8 +851,8 @@ windows-mingw64-cmake-build: # expire_in: 1 week # paths: # - COLLECTION -# - Packages/*/*/*/*/*/*.zip -# - Packages/*/*/*/*/*/*.bz2 +# - Packages/*/*/*/*/*.zip +# - Packages/*/*/*/*/*.bz2 # tags: # - windows # except: diff --git a/ci/build.sh b/ci/build.sh index bff6e07e3..affffa562 100755 --- a/ci/build.sh +++ b/ci/build.sh @@ -22,8 +22,8 @@ META_DATA_DIR=Metadata/${COLLECTION}/${ID}/${VERSION_ID} mkdir -p ${META_DATA_DIR} DIR=Packages/${COLLECTION}/${ID}/${VERSION_ID} ARCH=$( uname -m ) -mkdir -p ${DIR}/os/${ARCH} -mkdir -p ${DIR}/debug/${ARCH} +mkdir -p ${DIR}/os +mkdir -p ${DIR}/debug mkdir -p ${DIR}/source build_system=${build_system:-autotools} if [ "${build_system}" = "cmake" ]; then @@ -35,18 +35,18 @@ if [ "${build_system}" = "cmake" ]; then popd if [ "${OSTYPE}" = "linux-gnu" ]; then if [ "${ID_LIKE:-}" = "debian" ]; then - mv build/*.deb ${DIR}/os/${ARCH}/ + mv build/*.deb ${DIR}/os/ else - mv build/*.rpm ${DIR}/os/${ARCH}/ + mv build/*.rpm ${DIR}/os/ fi elif [[ "${OSTYPE}" =~ "darwin" ]]; then - mv build/*.zip ${DIR}/os/${ARCH}/ + mv build/*.zip ${DIR}/os/ elif [ "${OSTYPE}" = "msys" ]; then - mv build/*.zip ${DIR}/os/${ARCH}/ - mv build/*.exe ${DIR}/os/${ARCH}/ + mv build/*.zip ${DIR}/os/ + mv build/*.exe ${DIR}/os/ elif [[ "${OSTYPE}" =~ "cygwin" ]]; then - mv build/*.zip ${DIR}/os/${ARCH}/ - mv build/*.tar.bz2 ${DIR}/os/${ARCH}/ + mv build/*.zip ${DIR}/os/ + mv build/*.tar.bz2 ${DIR}/os/ else echo "Error: OSTYPE=${OSTYPE} is unknown" >&2 exit 1 @@ -60,21 +60,21 @@ elif [[ "${CONFIGURE_OPTIONS:-}" =~ "--enable-static" ]]; then make install popd tar cf - -C graphviz-${GV_VERSION}/build . | xz -9 -c - > graphviz-${GV_VERSION}-${ARCH}.tar.xz - mv graphviz-${GV_VERSION}-${ARCH}.tar.xz ${DIR}/os/${ARCH}/ + mv graphviz-${GV_VERSION}-${ARCH}.tar.xz ${DIR}/os/ else GV_VERSION=$( cat GRAPHVIZ_VERSION ) if [ "$OSTYPE" = "linux-gnu" ]; then if [ "${ID_LIKE:-}" = "debian" ]; then tar xfz graphviz-${GV_VERSION}.tar.gz (cd graphviz-${GV_VERSION}; fakeroot make -f debian/rules binary) | tee >(ci/extract-configure-log.sh >${META_DATA_DIR}/configure.log) - mv *.deb ${DIR}/os/${ARCH}/ - mv *.ddeb ${DIR}/debug/${ARCH}/ + mv *.deb ${DIR}/os/ + mv *.ddeb ${DIR}/debug/ else rm -rf ${HOME}/rpmbuild rpmbuild -ta graphviz-${GV_VERSION}.tar.gz | tee >(ci/extract-configure-log.sh >${META_DATA_DIR}/configure.log) mv ${HOME}/rpmbuild/SRPMS/*.src.rpm ${DIR}/source/ - mv ${HOME}/rpmbuild/RPMS/*/*debuginfo*rpm ${DIR}/debug/${ARCH}/ - mv ${HOME}/rpmbuild/RPMS/*/*.rpm ${DIR}/os/${ARCH}/ + mv ${HOME}/rpmbuild/RPMS/*/*debuginfo*rpm ${DIR}/debug/ + mv ${HOME}/rpmbuild/RPMS/*/*.rpm ${DIR}/os/ fi elif [[ "${OSTYPE}" =~ "darwin" ]]; then ./autogen.sh @@ -82,7 +82,7 @@ else make make install tar cfz graphviz-${GV_VERSION}-${ARCH}.tar.gz --options gzip:compression-level=9 build - mv graphviz-${GV_VERSION}-${ARCH}.tar.gz ${DIR}/os/${ARCH}/ + mv graphviz-${GV_VERSION}-${ARCH}.tar.gz ${DIR}/os/ elif [ "${OSTYPE}" = "cygwin" ]; then if [ "${use_autogen:-no}" = "yes" ]; then ./autogen.sh @@ -90,7 +90,7 @@ else make make install tar cf - -C build . | xz -9 -c - > graphviz-${GV_VERSION}-${ARCH}.tar.xz - mv graphviz-${GV_VERSION}-${ARCH}.tar.xz ${DIR}/os/${ARCH}/ + mv graphviz-${GV_VERSION}-${ARCH}.tar.xz ${DIR}/os/ else tar xfz graphviz-${GV_VERSION}.tar.gz pushd graphviz-${GV_VERSION} @@ -99,7 +99,7 @@ else make install popd tar cf - -C graphviz-${GV_VERSION}/build . | xz -9 -c - > graphviz-${GV_VERSION}-${ARCH}.tar.xz - mv graphviz-${GV_VERSION}-${ARCH}.tar.xz ${DIR}/os/${ARCH}/ + mv graphviz-${GV_VERSION}-${ARCH}.tar.xz ${DIR}/os/ fi else echo "Error: OSTYPE=${OSTYPE} is unknown" >&2 diff --git a/ci/install-packages.sh b/ci/install-packages.sh index 9a3839a6d..fb943c96d 100755 --- a/ci/install-packages.sh +++ b/ci/install-packages.sh @@ -32,32 +32,32 @@ if [ "${ID}" = "centos" -o "${ID}" = "fedora" ]; then fi if [ "${build_system}" = "cmake" ]; then if [ "${ID_LIKE}" = "debian" ]; then - apt install ./${DIR}/os/${ARCH}/Graphviz-${GV_VERSION}-Linux.deb + apt install ./${DIR}/os/Graphviz-${GV_VERSION}-Linux.deb elif [ "${ID}" = "Darwin" ]; then - unzip ${DIR}/os/${ARCH}/Graphviz-${GV_VERSION}-Darwin.zip + unzip ${DIR}/os/Graphviz-${GV_VERSION}-Darwin.zip cp -rp Graphviz-${GV_VERSION}-Darwin/* /usr/local else - rpm --install --force ${DIR}/os/${ARCH}/Graphviz-${GV_VERSION}-Linux.rpm + rpm --install --force ${DIR}/os/Graphviz-${GV_VERSION}-Linux.rpm fi else if [ "${ID_LIKE}" = "debian" ]; then - apt install ./${DIR}/os/${ARCH}/libgraphviz4_${GV_VERSION}-1_amd64.deb - apt install ./${DIR}/os/${ARCH}/libgraphviz-dev_${GV_VERSION}-1_amd64.deb - apt install ./${DIR}/os/${ARCH}/graphviz_${GV_VERSION}-1_amd64.deb + apt install ./${DIR}/os/libgraphviz4_${GV_VERSION}-1_amd64.deb + apt install ./${DIR}/os/libgraphviz-dev_${GV_VERSION}-1_amd64.deb + apt install ./${DIR}/os/graphviz_${GV_VERSION}-1_amd64.deb elif [ "${ID}" = "Darwin" ]; then - tar xf ${DIR}/os/${ARCH}/graphviz-${GV_VERSION}-${ARCH}.tar.gz + tar xf ${DIR}/os/graphviz-${GV_VERSION}-${ARCH}.tar.gz cp -rp build/* /usr/local else rpm --install --force \ - ${DIR}/os/${ARCH}/graphviz-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-libs-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-devel-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-plugins-core-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-plugins-x-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-x-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-gd-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-qt-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-plugins-gd-${GV_VERSION}*.rpm \ - ${DIR}/os/${ARCH}/graphviz-nox-${GV_VERSION}*.rpm + ${DIR}/os/graphviz-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-libs-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-devel-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-plugins-core-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-plugins-x-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-x-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-gd-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-qt-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-plugins-gd-${GV_VERSION}*.rpm \ + ${DIR}/os/graphviz-nox-${GV_VERSION}*.rpm fi fi