From ce202d866923905ca8670f64ec03a62570a6ff46 Mon Sep 17 00:00:00 2001 From: "Richard (Rikki) Andrew Cattermole" Date: Fri, 17 Oct 2025 12:35:20 +1300 Subject: [PATCH 1/3] Bump OSX runner to osx-14 --- .github/workflows/build_release_template.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_release_template.yml b/.github/workflows/build_release_template.yml index 4332adee..b044f019 100644 --- a/.github/workflows/build_release_template.yml +++ b/.github/workflows/build_release_template.yml @@ -126,7 +126,7 @@ jobs: include: - os: ubuntu-22.04 target: linux - - os: macos-13 + - os: macos-14 target: osx - os: windows-2022 target: windows From e5de25c7f636aa06c6f07743f6daff3fa64185d2 Mon Sep 17 00:00:00 2001 From: Dennis Korpel Date: Sun, 11 Jan 2026 00:06:51 +0100 Subject: [PATCH 2/3] Clone full repositories for the build release GH workflow --- .github/workflows/build_release_template.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build_release_template.yml b/.github/workflows/build_release_template.yml index b044f019..f3195e59 100644 --- a/.github/workflows/build_release_template.yml +++ b/.github/workflows/build_release_template.yml @@ -55,6 +55,7 @@ jobs: with: repository: 'dlang/dmd' ref: ${{ inputs.release_branch }} + fetch-depth: 0 path: 'dmd' - name: Clone phobos @@ -62,6 +63,7 @@ jobs: with: repository: 'dlang/phobos' ref: ${{ inputs.release_branch }} + fetch-depth: 0 path: 'phobos' - name: Clone dlang.org @@ -69,6 +71,7 @@ jobs: with: repository: 'dlang/dlang.org' ref: ${{ inputs.release_branch }} + fetch-depth: 0 path: 'dlang.org' # Fetch host compiler From 7db3f082cff44b382e995d420695a2a9fb378cf5 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Mon, 2 Mar 2026 14:34:24 +0100 Subject: [PATCH 3/3] osx: Convert PackageMaker to using pkgbuild (#731) --- create_dmd_release/build_all.d | 7 ++- osx/Makefile | 11 ++--- osx/dmd.pmdoc/01dmd-contents.xml | 1 - osx/dmd.pmdoc/01dmd.xml | 1 - osx/dmd.pmdoc/index.xml | 50 -------------------- osx/readme.txt | 21 ++++---- osx/{post-install.sh => scripts/postinstall} | 0 7 files changed, 17 insertions(+), 74 deletions(-) delete mode 100644 osx/dmd.pmdoc/01dmd-contents.xml delete mode 100644 osx/dmd.pmdoc/01dmd.xml delete mode 100644 osx/dmd.pmdoc/index.xml rename osx/{post-install.sh => scripts/postinstall} (100%) diff --git a/create_dmd_release/build_all.d b/create_dmd_release/build_all.d index 2e9f093a..b935814c 100644 --- a/create_dmd_release/build_all.d +++ b/create_dmd_release/build_all.d @@ -636,9 +636,12 @@ int main(string[] args) immutable ver = gitTag.chompPrefix("v"); mkdirRecurse("build"); - version (NoVagrant) version(linux) {} else - if (!skipDocs) + version (NoVagrant) + { + version(linux) {} + else if (!skipDocs) copyDirectory("docs", workDir); + } foreach (p; platforms) { diff --git a/osx/Makefile b/osx/Makefile index 17e824f3..da4ad75b 100644 --- a/osx/Makefile +++ b/osx/Makefile @@ -18,12 +18,6 @@ TARGET_DIR=data # TARGET_SITE=erdani.com # TARGET_DIR=d -MAKER:=$(shell \ -if [ -f /Developer/usr/bin/packagemaker ];\ - then echo /Developer/usr/bin/packagemaker;\ - else echo /Applications/PackageMaker.app/Contents/MacOS/PackageMaker;\ -fi) - all: dmd.${VERSION}.dmg rsync -az $< ${TARGET_SITE}:${TARGET_DIR}/dmd.${VERSION}.dmg @@ -37,7 +31,10 @@ dmd.${VERSION}.dmg: dmd.${VERSION}.osx.zip rm -rf dmg/ mkdir -p dmg/DMD2 cp uninstall.command dmg/DMD2/ - ${MAKER} -d dmd.pmdoc -o dmg/DMD2/DMD2.pkg --target 10.5 + pkgbuild --root dmd/ \ + --version ${VERSION} --identifier org.dlang.dmd.dmd2 \ + --install-location /Library/D/dmd --scripts scripts/ \ + --min-os-version 10.5 dmg/DMD2/DMD2.pkg hdiutil create -srcfolder dmg/DMD2 $@ clean: diff --git a/osx/dmd.pmdoc/01dmd-contents.xml b/osx/dmd.pmdoc/01dmd-contents.xml deleted file mode 100644 index bc1e5a79..00000000 --- a/osx/dmd.pmdoc/01dmd-contents.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/osx/dmd.pmdoc/01dmd.xml b/osx/dmd.pmdoc/01dmd.xml deleted file mode 100644 index fc6508be..00000000 --- a/osx/dmd.pmdoc/01dmd.xml +++ /dev/null @@ -1 +0,0 @@ -org.dlang.dmd.dmd2.pkg1dmd/Library/D/dmdinstallToinstallFrom.pathidentifierparentinstallTo.pathinstallFrom.isRelativeTypescripts.postinstall.isRelativeTypepost-install.sh \ No newline at end of file diff --git a/osx/dmd.pmdoc/index.xml b/osx/dmd.pmdoc/index.xml deleted file mode 100644 index 6deda4bf..00000000 --- a/osx/dmd.pmdoc/index.xml +++ /dev/null @@ -1,50 +0,0 @@ -DMD2/Users/doob/Documents/DMD2.pkgcom.digitalmars.dmd\ -\ - -\b This package is intended for Mac OS X Mavericks (10.9) and later.}]]>System Requirements FailedThis package can only be installed on Mac OS X Maavericks (10.9) or later.At least 22MB of disk space has to be avaliable to install this package.01dmd.xmlproperties.titleproperties.userDomainproperties.anywhereDomainproperties.systemDomain diff --git a/osx/readme.txt b/osx/readme.txt index b6d4046f..9b47d686 100644 --- a/osx/readme.txt +++ b/osx/readme.txt @@ -33,15 +33,14 @@ The it will copy the dmd.conf or dmd2.conf file into dmd/bin, this is needed because the installer will create symlinks and the dmd.conf need to have hard coded paths. -Then it will run packagemaker to create the installer, it will use -dmd.pmdoc or dmd2.pmdoc, it contains the GUI for the installer and -what and how to install. packagemaker will also pack post-install.sh, -it creates symlinks. It will also package the contents of the dmd -directory into the .pkg file it will create. The .pkg file will be -saved in dmg/DMD then the uninstall.command file will be copied here -to, it's a regular shell script that uninstalls everything, it has -".command" as the file extension because then you can double click on -it in Finder and it will launch a terminal and run the script. +Then it will run pkgbuild to create the installer. pkgbuild will +also pack scripts/postinstall, it creates symlinks. It will also +package the contents of the dmd directory into the .pkg file it +will create. The .pkg file will be saved in dmg/DMD then the +uninstall.command file will be copied here to, it's a regular shell +script that uninstalls everything, it has ".command" as the file +extension because then you can double click on it in Finder and it +will launch a terminal and run the script. After the installer is created it will run hdiutil on the dmg directory and create a .dmg file with the name you gave with the -o @@ -59,9 +58,5 @@ graphical user interface. It's very easy to enable vnc: Apple Menu -> System Preferences -> Sharing -> enable Screen Sharing -> Computer Settings... -> VNC viewers ... -You will need the GUI to run PackageMaker and look at the pmdoc files, -if you don't want to read xml. - - /Jacob Carlborg diff --git a/osx/post-install.sh b/osx/scripts/postinstall similarity index 100% rename from osx/post-install.sh rename to osx/scripts/postinstall