]> git.ipfire.org Git - thirdparty/shairport-sync.git/commitdiff
Bring up to date with changes in the development branch, most of which come from...
authorMike Brady <4265913+mikebrady@users.noreply.github.com>
Thu, 29 Sep 2022 13:05:37 +0000 (14:05 +0100)
committerMike Brady <4265913+mikebrady@users.noreply.github.com>
Thu, 29 Sep 2022 13:05:37 +0000 (14:05 +0100)
.github/ISSUE_TEMPLATE/Bug Report.yaml
.github/workflows/docker-build-on-formal-release.yaml [new file with mode: 0644]
.github/workflows/stale.yaml [new file with mode: 0644]
CAR INSTALL.md
RELEASENOTES.md

index 11e2f3a169971f1832a969d4d2a19a59e9788998..8017b5dbfbb94f7c40710629a70415b8e39c669b 100644 (file)
@@ -1,12 +1,12 @@
-name: Bug Report
-description: File a bug report
-title: "[Bug]: "
-labels: ["bug"]
+name: Issue Report
+description: File an Issue
+title: "[Problem]: "
+labels: ["new issue"]
 body:
   - type: markdown
     attributes:
       value: |
-        Thanks for taking the time to fill out this bug report!
+        Thanks for taking the time to fill out this report!
   - type: textarea
     id: what-happened
     attributes:
@@ -20,6 +20,13 @@ body:
       label: Relevant log output
       description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
       render: shell
+  - type: textarea
+    id: os
+    attributes:
+      label: Operating System?
+      description: What Operating System are you running on ? (`uname -a`)
+    validations:
+      required: true
   - type: textarea
     id: version
     attributes:
@@ -27,6 +34,17 @@ body:
       description: What version of Shairport Sync are you running? (`shairport-sync -V`)
     validations:
       required: true
+  - type: dropdown
+    id: install
+    attributes:
+      label: How did you install Shairport Sync?
+      options:
+        - Homebrew for Mac
+        - Docker
+        - A package manager (apt, yum, pkg, etc.)
+        - Built from source
+    validations:
+      required: true
   - type: checkboxes
     id: checked-current-issues
     attributes:
@@ -34,4 +52,5 @@ body:
       description: Please check previous issues (including closed ones) for duplicates.
       options:
         - label: Confirm
-          required: true
\ No newline at end of file
+          required: true
+
diff --git a/.github/workflows/docker-build-on-formal-release.yaml b/.github/workflows/docker-build-on-formal-release.yaml
new file mode 100644 (file)
index 0000000..fc69837
--- /dev/null
@@ -0,0 +1,83 @@
+# Builds & pushes a docker image when a "formal" release tag of the format X, X.Y or X.Y.Z occurs, where X, Y and Z are all numbers.
+# It seems this yaml has to exist on the branch the tag refers to.
+
+# Thanks to Charles Omer for the workfow upon which this is based.
+
+# The following docker tags are created & pushed:
+# trial, trial-classic
+# not building 'latest' yet...
+
+name: Formal (X, X.Y or X.Y.Z) release tags -- docker build and push.
+
+on:
+  push:
+    tags:
+      - '[0-9]+\.[0-9]+\.[0-9]+'  # e.g. 8.9.0
+      - '[0-9]+\.[0-9]+'  # e.g. 8.9
+      - '[0-9]+'  # e.g. 8
+      - '[0-9]+\.[0-9]+rc[0-9]+' # e.g. 4.1rc0
+
+env:
+  DOCKER_PLATFORMS: linux/386,linux/amd64,linux/arm/v6,linux/arm64,linux/arm/v7
+
+jobs:
+  main:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+
+      - name: Set SHAIRPORT_SYNC_BRANCH env.
+        run: |
+          raw=$(git branch -r --contains ${{ github.ref }})
+          branch=${raw##*/}
+          echo "SHAIRPORT_SYNC_BRANCH=${branch}" >> $GITHUB_ENV
+
+      - name: Set tag env
+        run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
+
+      - name: Determine NQPTP env (part 1).
+        if: ${{ env.SHAIRPORT_SYNC_BRANCH == 'development' }}
+        run: echo "NQPTP_BRANCH=development" >> $GITHUB_ENV
+      
+      - name: Determine NQPTP env (part 2).
+        if: ${{ env.SHAIRPORT_SYNC_BRANCH != 'development' }}
+        run: echo "NQPTP_BRANCH=main" >> $GITHUB_ENV
+        
+      - name: Set up QEMU
+        uses: docker/setup-qemu-action@v1
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v1
+
+      - name: Login to Docker Registry
+        uses: docker/login-action@v1
+        with:
+          registry: ${{ secrets.DOCKER_REGISTRY }}
+          username: ${{ secrets.DOCKER_REGISTRY_USER }}
+          password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
+
+      - name: Build and push
+        uses: docker/build-push-action@v2
+        with:
+          context: ./
+          file: ./docker/Dockerfile
+          platforms: ${{ env.DOCKER_PLATFORMS }}
+          push: true
+          tags: trial
+          build-args: |
+            SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
+            NQPTP_BRANCH=${{ env.NQPTP_BRANCH }}
+
+      - name: Build and push (Classic)
+        uses: docker/build-push-action@v2
+        with:
+          context: ./
+          file: ./docker/classic/Dockerfile
+          platforms: ${{ env.DOCKER_PLATFORMS }}
+          push: true
+          tags: trial-classic
+          build-args: |
+            SHAIRPORT_SYNC_BRANCH=${{ env.SHAIRPORT_SYNC_BRANCH }}
diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml
new file mode 100644 (file)
index 0000000..51658c0
--- /dev/null
@@ -0,0 +1,21 @@
+name: 'Close stale issues and PRs'
+on:
+  schedule:
+    - cron: '0 0 * * *'
+
+permissions:
+  issues: write
+  pull-requests: write
+
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/stale@v4
+        with:
+          stale-issue-message: 'This issue has been inactive for 45 days so will be closed 7 days from now. To prevent this, please remove the "stale" label or post a comment.'
+          stale-pr-message: 'This PR has been inactive for 45 days so will be closed 7 days from now. To prevent this, please remove the "stale" label or post a comment.'
+          operations-per-run: 100
+          # These are the defaults at the time of writing. https://github.com/marketplace/actions/close-stale-issues
+          # days-before-stale: 45
+          # days-before-close: 7
index 8cc47b042e7dadcb3548b143efcb6b29e6e77230..c2259a5f837f97a0c18516740326d00967a927c0 100644 (file)
@@ -215,3 +215,43 @@ Install the Raspberry Pi in your car. It should be powered from a source that is
 When the power source is switched on, typically when you start the car, it will take maybe a minute for the system to boot up.
 
 ### Enjoy!
+
+---
+
+## Updating
+From time to time, you may wish to update this installation. However, in order to update Shairport Sync, you must reconnect the system to a network that can access the internet. The easiest thing is to temporarily reconnect to the network you used when you created the system. To do that, you have to temporarily undo the "Final Steps" and some of the "Raspberry Pi Specific" steps you used. This will enable you to connect your device back to the network it was created on. You should then be able to update the operating system and libraries in the normal way and then update Shairport Sync.
+
+So, take the following steps:
+
+1. If it's a Raspberry Pi and you have enabled the Read-only mode, you must take the device out of Read-only mode:  
+Run `sudo raspi-config` and then choose `Performance Options` > `Overlay Filesystem` and choose to disable the overlay filesystem and to set the boot partition not to be write-protected. This is so that changes can be written to the file system; you can make the filesystem read-only again later. Save the changes and reboot the system.
+
+2. If you have disabled the `dhcpcd`, `wpa_supplicant` or `systemd-timesyncd` services as suggested in the "Optimise startup time -- Raspberry Pi Specific" section, you need to temporarily re-enable them:  
+`# systemctl enable dhcpcd.service`  
+`# systemctl enable wpa_supplicant.service`  
+`# systemctl enable systemd-timesyncd.service`  
+Reboot.
+
+3. To allow your device to reconnect to the network it was created on, edit `/etc/dhcpcd.conf` and comment out the following line at the start:  
+`denyinterfaces wlan0`  
+so that it looks like this:  
+`# denyinterfaces wlan0`  
+From this point on, if you reboot the machine, it will connect to the network it was configured on, i.e. the network you used when you set it up for the first time. This is because the name and password of the network it was created on would have been placed in `/etc/wpa_supplicant/wpa_supplicant` when the system was initially configured and will still be there.
+
+4. Reboot and do Normal Updating
+
+   You can perform updates in the normal way -- see [UPDATING](https://github.com/mikebrady/shairport-sync/blob/master/UPDATING.md). When you are finished, you need to undo the temporary changes you made to the setup, as follows:
+
+5. If you had temporarily re-enabled services that are normally disabled, then it's time to disable them again:  
+`# systemctl disable dhcpcd.service`  
+`# systemctl disable wpa_supplicant.service`  
+`# systemctl disable systemd-timesyncd.service`  
+
+6. To re-enable the system to create its own network, edit `/etc/dhcpcd.conf` and uncomment the line that you had temporarily commented out at the start of the update. Change:  
+`# denyinterfaces wlan0`  
+so that it looks like this:  
+`denyinterfaces wlan0`  
+
+7. Reboot. The system should start as it would if it was in the car.
+
+8. If the device is a Raspberry Pi and you wish to make the file system read-only, connect to the system, run `sudo raspi-config` and then choose `Performance Options` > `Overlay Filesystem`. In there, choose to enable the overlay filesystem, and to set the boot partition to be write-protected. Do a final reboot and check that everyting is in order.
index bfb2c8fa3af7cd2ed534d75ec180f0a8f317644a..9fdc062871788fb9f0f48a63b3f6891f284a5bf8 100644 (file)
@@ -1,4 +1,29 @@
-Please see the [Release Notes for 3.3](https://github.com/mikebrady/shairport-sync/releases/tag/3.3).
+Version 4.1-rc0 Release Candidate
+====
+
+Really Big Update -- AirPlay 2!
+----
+Version 4.1 brings support for AirPlay 2 operation. It works with iOS, iPadOS, macOS, HomePod mini and Apple TV sources, but not with Windows.
+Limited support is available for HomeKit -- Shairport Sync speakers can be added to the Home app, though not all features are working.
+AirPlay 2 operation requires a companion program called NQPTP and requires a somewhat more powerful system. Please see [AIRPLAY2.md](./AIRPLAY.md) for more.
+
+Note that you can still build Shairport Sync to support "classic" AirPlay (aka "AirPlay 1") as before.
+
+The various guides for building and updating Shairport Sync have been consolidated into [BUILD.md](./BUILD.md). 
+
+Here is a brief list of the high-level new features and changes (more to be added):
+* AirPlay 2 operation.
+* Improved `libao` backend for better compatibility with HomeBrew installations.
+* Improved MQTT and D-Bus facilities.
+* Automatically-generated Docker images (forthcoming).
+
+There have been many many bug fixes and enhancements to the core operation of Shairport Sync.
+
+Version 3.3.9
+====
+**Bug Fix**
+* Version 3.3.9 fixes a build failure with convolution raised since `automake 1.16.5` and https://git.savannah.gnu.org/cgit/automake.git/commit/?id=f4a3a70f69e1dbccb6578f39ef47835098a04624.
+Further details in [Fabrice Fontaine's original PR](https://github.com/mikebrady/shairport-sync/pull/1314) to the `development` branch. Many thanks to [Fabrice Fontaine](https://github.com/ffontaine) for the bug report and for the fix.
 
 Version 3.3.8
 ====