Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perl-io-compress linux aarch64 support #52152

Merged
merged 9 commits into from
Nov 19, 2024
11 changes: 4 additions & 7 deletions recipes/blast/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ source:
- update_configsub.patch

build:
number: 2
number: 3
run_exports:
# Now, the point releases seem to be only bugfixes at least (but this definitely was not the
# case up to v2.2.31)
Expand Down Expand Up @@ -96,12 +96,9 @@ about:


extra:
# this can be enabled once:
# perl-list-moreutils-xs, perl-io-compress
# have ARM builds available
#additional-platforms:
# - linux-aarch64
# - osx-arm64
additional-platforms:
- linux-aarch64
- osx-arm64
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

Dependency availability concerns for ARM platforms

Based on the package availability check results:

  • Core system libraries (zlib, bzip2, curl, sqlite, perl) are available for ARM platforms
  • Several critical dependencies are missing ARM support in conda-forge:
    • entrez-direct
    • ncbi-vdb
    • perl-list-moreutils
    • perl-archive-tar
    • perl-json

While the patch file properly handles ARM architecture detection, the missing dependencies would prevent successful builds on ARM platforms.

  • The package should not be enabled for ARM platforms until these dependencies are available
  • Consider filing issues with the respective package maintainers to request ARM support
🔗 Analysis chain

Verify dependency availability on ARM platforms

While adding ARM platform support is valuable, we should verify that all dependencies are available and properly tested on these architectures.

Let's check the dependency availability:

Additionally, consider:

  1. Adding ARM-specific test cases in the test section
  2. Documenting any known performance characteristics on ARM platforms
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if all dependencies are available for ARM platforms

# Check conda-forge and bioconda channels for key dependencies on ARM
echo "Checking key dependencies availability on ARM platforms..."

for pkg in "zlib" "bzip2" "entrez-direct" "ncbi-vdb" "curl" "sqlite" "perl" "perl-list-moreutils" "perl-archive-tar" "perl-json" "rpsbproc"; do
    echo "Checking $pkg..."
    # Query conda-forge
    curl -s "https://conda.anaconda.org/conda-forge/linux-aarch64/$pkg/repodata.json" | jq -r '.packages | keys[]'
    # Query bioconda
    curl -s "https://conda.anaconda.org/bioconda/linux-aarch64/$pkg/repodata.json" | jq -r '.packages | keys[]'
done

# Check if there are any ARM-specific patches or issues in the repo
echo "Checking for ARM-related issues or patches..."
rg -i "aarch64|arm64" recipes/blast/

Length of output: 6692


Script:

#!/bin/bash
# Let's try a different approach to check package availability
# We'll use conda-search which is more reliable for checking package existence

echo "Checking dependencies in conda-forge channel for linux-aarch64..."
for pkg in "zlib" "bzip2" "entrez-direct" "ncbi-vdb" "curl" "sqlite" "perl" "perl-list-moreutils" "perl-archive-tar" "perl-json" "rpsbproc"; do
    echo "=== $pkg ==="
    conda search -c conda-forge --platform linux-aarch64 $pkg
done

# Check the patch file content to understand ARM support
echo -e "\nChecking patch file content..."
cat recipes/blast/update_configsub.patch

# Check build requirements
echo -e "\nChecking build requirements..."
cat recipes/blast/meta.yaml | grep -A 20 "requirements:"

Length of output: 71021


Script:

#!/bin/bash
# Let's check if these packages are available in conda-forge's aarch64 channel using anaconda API
echo "Checking package availability in conda-forge channel for aarch64..."

for pkg in "zlib" "bzip2" "entrez-direct" "ncbi-vdb" "curl" "sqlite" "perl" "perl-list-moreutils" "perl-archive-tar" "perl-json"; do
    echo "=== $pkg ==="
    curl -s "https://api.anaconda.org/package/conda-forge/$pkg" | jq -r '.files[] | select(.basename | contains("aarch64")) | .basename'
done

# Check if the patch file properly handles ARM architectures
echo -e "\nChecking ARM support in patch file..."
cat recipes/blast/update_configsub.patch | grep -A 5 -B 5 "aarch64\|arm64"

# Check if there are any ARM-specific build flags or configurations
echo -e "\nChecking for ARM-specific build configurations..."
cat recipes/blast/build.sh

Length of output: 21107

identifiers:
- biotools:blast
- doi:10.1016/S0022-2836(05)80360-2
Expand Down
10 changes: 8 additions & 2 deletions recipes/perl-io-compress/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@ source:
sha256: f6c55c4e39cfaa3219965dd3b36c9de1edee9a82a10a9cadeb3b74a9ceeeaaad

build:
number: 2

number: 3
run_exports:
- {{ pin_subpackage('bedtools', max_pin="x") }}

requirements:
build:
- make
Expand Down Expand Up @@ -55,6 +57,10 @@ test:
- IO::Uncompress::RawInflate
- IO::Uncompress::Unzip

extra:
additional-platforms:
- linux-aarch64
- osx-arm64
about:
home: http://metacpan.org/pod/IO-Compress
license: perl_5
Expand Down
3 changes: 2 additions & 1 deletion recipes/r-facets/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ source:
sha256: aa671d4fc66e10ce2fe4c8b2cbac4946da8a1564627240ea916db6cd8ec2a6c5

build:
number: 5
number: 6
run_exports:
- {{ pin_subpackage("r-facets", max_pin="x") }}
rpaths:
Expand Down Expand Up @@ -39,5 +39,6 @@ about:
extra:
additional-platforms:
- linux-aarch64
- osx-arm64
identifiers:
- biotools:facets
Loading