

# Supplementary Packages for Amazon Linux
<a name="spal"></a>

 This section introduces Supplementary Packages for Amazon Linux (SPAL) and outlines its benefits and limitations, along with guidelines for reporting package-related issues. 

**Topics**
+ [What is Supplementary Packages for Amazon Linux (or SPAL)?](#spal-what-is)
+ [Benefits](#spal-benefits)
+ [Support of SPAL packages](#spal-support)
+ [Reporting package-related issues](#spal-reporting)
+ [Related topics](#spal-more-info)
+ [Tutorial: Configure SPAL repository on AL2023](configure-spal-repository.md)

## What is Supplementary Packages for Amazon Linux (or SPAL)?
<a name="spal-what-is"></a>

 Supplementary Packages for Amazon Linux (SPAL) is a dedicated package repository that provides access to thousands of additional packages derived from [Extra Packages for Enterprise Linux 9 (EPEL9)](https://docs.fedoraproject.org/en-US/epel/epel-about/). These packages complement the existing software available in core Amazon Linux 2023. 

 SPAL simplifies software deployment by providing pre-built packages that are compatible with AL2023, eliminating the need for customers to build packages from source code themselves. This saves time and effort in the software installation process. 

**Note**  
 SPAL is available in all AWS Commercial Regions, including the AWS GovCloud (US) Regions and China, for AL2023 instances with a release version of ` 2023.9.20251117` or later. 

## Benefits
<a name="spal-benefits"></a>

 SPAL provides several key advantages to Amazon Linux 2023 users: 
+  **Expanding AL2023 use cases ** — Access to popular additional packages beyond the core AL2023 repository, such as `pandoc`, ` GDAL` or `drbd-utils`, enables customers to support multiple business and development needs. 
+  **Simplifying AL2023 package management** — By providing packages pre-built for AL2023, the process of building additional packages from source is eliminated, saving time and reducing the risk of compilation errors. 
+  **Streamlining AL2 to AL2023 migration** — SPAL repository enables seamless migration of workloads from AL2 to AL2023, including workloads that depend on EPEL7 packages. 

## Support of SPAL packages
<a name="spal-support"></a>

 SPAL packages are not covered by the same level of support as core AL2023 packages, which receive support for the entire life of Amazon Linux 2023. 

**Important**  
 Prior to using SPAL, customers must carefully evaluate the following considerations:   
SPAL packages **are NOT covered** by AWS Support Plans.
SPAL packages **are provided 'as-is'** from upstream EPEL9.
SPAL packages **will NOT receive** AWS CVE security tracking.
SPAL packages receive security patches and bug fixes **exclusively from upstream EPEL9 when available**.

## Reporting package-related issues
<a name="spal-reporting"></a>

 If you encounter an issue with an SPAL package, we recommend to first check if the same issue occurs with the corresponding package in the upstream EPEL9 repository. For this, please consult the [list of issues](https://pagure.io/epel/issues) on the upstream EPEL repository. 

 If the issue is not present in EPEL9, create an issue in the [Amazon Linux 2023 GitHub repository](https://github.com/amazonlinux/amazon-linux-2023/issues), as this indicates the problem is specific to the SPAL package build or configuration. 

 This approach ensures issues are addressed by the appropriate maintainers and contributes to the overall quality of both SPAL and upstream EPEL packages. 

**Note**  
 The reported issues will be handled on a best-effort basis. 

## Related topics
<a name="spal-more-info"></a>

For information on configuring SPAL on your system, consult the following documentation page:
+  [Tutorial: Configure SPAL repository on AL2023](configure-spal-repository.md) 

# Tutorial: Configure SPAL repository on AL2023
<a name="configure-spal-repository"></a>

Supplementary Packages for Amazon Linux (SPAL) is an additional package repository for AL2023 that provides customers access to thousands of open-source packages.

 The following tutorial helps you configure the SPAL repository on your AL2023 instance. By installing the repository, you will gain access to all RPM packages available in SPAL. Once installed, you can use your package manager to install and use these packages on your system. 

**Topics**
+ [Prerequisites](#configure-spal-prereqs)
+ [Checking prerequisites](#configure-spal-check-prereqs)
+ [Installing SPAL on your system](#configure-spal-install)
+ [Installing SPAL packages](#configure-spal-install-pkgs)
+ [Uninstalling SPAL repository from your system](#configure-spal-uninstall)
+ [Related topics](#configure-spal-more-info)

## Prerequisites
<a name="configure-spal-prereqs"></a>

This tutorial assumes that you have already launched an instance using AL2023 release version `2023.9.20251117` or later. For more information, see the [AL2023 on Amazon EC2](ec2.md) and [Updating AL2023](updating.md) pages. 

## Checking prerequisites
<a name="configure-spal-check-prereqs"></a><a name="check-prereqs"></a>
+ To verify your instance satisfies the prerequisites, you can check the version of `system-release` installed on your system.

  To check the version of the package, you can use the following command.

  ```
  [ec2-user ~]$ rpm -qi system-release
  ```

  The command will display information about the package, including the major version.

  ```
  Name        : system-release
  Version     : 2023.9.20251117
  ...
  ```
**Note**  
Make sure to have the latest version of `system-release` installed. You can run `sudo dnf upgrade` to update to the latest version.

## Installing SPAL on your system
<a name="configure-spal-install"></a><a name="install-spal"></a>

1. Install the `spal-release` package on your system. This adds the `.repo` configuration file and the GPG keys to your system.

   ```
   [ec2-user ~]$ sudo dnf install spal-release
   ```
**Note**  
 During the installation, the support statement will be displayed. The statement explains SPAL's scope of support and limitations. Please take time to review this information carefully. 

1. Verify the SPAL repository configuration was successfully added to your system.

   ```
   [ec2-user ~]$ cat /etc/yum.repos.d/amazonlinux-spal.repo
   ```

   You should see the three repositories configured on your system: `amazonlinux-spal`, `amazonlinux-spal-source`, and `amazonlinux-spal-debuginfo`.

   You can also check the list of configured repositories by running `dnf repolist`.

   ```
   [ec2-user ~]$ dnf repolist --all
   ```
**Note**  
 The `--all` flag is required to see both enabled and disabled repositories. 

   All three SPAL repositories should be available. Note that the **Amazon Linux 2023 SPAL repository - Source packages** and **Amazon Linux 2023 SPAL repository - Debug** repositories are disabled by default.

   ```
   repo id                       repo name                                                status
   amazonlinux-spal              Amazon Linux 2023 SPAL repository                        enabled
   amazonlinux-spal-source       Amazon Linux 2023 SPAL repository - Source packages      disabled
   amazonlinux-spal-debuginfo    Amazon Linux 2023 SPAL repository - Debug                disabled
   ```

1. (Optional) Enable the source repository.
**Note**  
 RPM source (SRPM) repositories are typically disabled by default because they are primarily used by developers for building packages, not by end-users for software installation. DNF automatically enables source repositories when you use commands that require source packages, such as `dnf download --source package`.   
 You do not need to manually enable the source repository for one-off source package operations. Follow this step only if you want to rebuild SRPMs from SPAL on your system. 

   To permanently enable the **Amazon Linux 2023 SPAL repository - Source packages** repository on your system, run the following command:

   ```
   [ec2-user ~]$ sudo dnf config-manager --enable amazonlinux-spal-source
   ```

1. (Optional) Enable the debuginfo repository.
**Note**  
 The debuginfo repository contains both debuginfo and debugsource packages. These packages provide debug symbols and source files that are useful for debugging and profiling applications. The debuginfo repository is disabled by default because these packages are primarily used by developers for troubleshooting, not by end-users for regular software installation.   
 Follow this step only if you need debug symbols or source files for SPAL packages on your system. 

   To permanently enable the **Amazon Linux 2023 SPAL repository - Debug** repository on your system, run the following command:

   ```
   [ec2-user ~]$ sudo dnf config-manager --enable amazonlinux-spal-debuginfo
   ```

## Installing SPAL packages
<a name="configure-spal-install-pkgs"></a><a name="install-pkgs-spal"></a>
+ Install SPAL packages on your system by running `dnf install` command.

  ```
  [ec2-user ~]$ sudo dnf install package
  ```
**Note**  
 You can use `dnf list` to see a complete list of SPAL packages.   

  ```
  [ec2-user ~]$ dnf list --repo=amazonlinux-spal
  ```
**Note**  
 SPAL is a versioned repository. Make sure to have the latest version of `system-release` installed to see the most recent list of packages.   
 For more information on deterministic updates, you can check [Deterministic upgrades through versioned repositories on AL2023](deterministic-upgrades.md) 

## Uninstalling SPAL repository from your system
<a name="configure-spal-uninstall"></a><a name="uninstall-spal"></a>

1. Remove the SPAL repository configuration using `dnf remove` command.

   ```
   [ec2-user ~]$ sudo dnf remove spal-release
   ```

1. Verify the repository was removed by running `dnf repolist` command.

   ```
   [ec2-user ~]$ dnf repolist
   ```
**Important**  
 Removing the SPAL repository configuration from your system does not remove any SPAL packages installed on the system.

## Related topics
<a name="configure-spal-more-info"></a>

For more information about the Supplementary Packages for Amazon Linux repository, see the following documentation:
+  [Supplementary Packages for Amazon Linux](spal.md) 