Skip to content

Explore installing Pandoc from EPEL repository for ppc64le architecture #2281

@coderabbitai

Description

@coderabbitai

Problem Description

Currently, PR #1179 implements Pandoc installation for ppc64le architecture by building from source using the Haskell toolchain (cabal-install, ghc, gmp-devel). This approach:

  • Requires significant build dependencies and compilation time
  • Increases Docker build complexity and image size during build
  • May face reliability issues in CI/CD environments with QEMU emulation

Proposed Investigation

Explore using EPEL repository packages for Pandoc installation on ppc64le architecture as an alternative to building from source.

Current Implementation (PR #1179)

  • Builds Pandoc 3.7.0.2 from source using Haskell toolchain
  • Requires: cabal-install, ghc, gmp-devel
  • Build time: significant compilation overhead
  • Final binary location: /usr/local/pandoc/bin

Proposed Alternative

# Install pandoc from EPEL
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf install -y pandoc

Investigation Areas

  1. Version Comparison

    • Check current EPEL pandoc version for ppc64le architecture
    • Compare with source-built version 3.7.0.2 feature compatibility
    • Evaluate if EPEL version meets notebook workflow requirements
  2. Architecture Support

    • Verify pandoc package availability in EPEL for ppc64le
    • Test installation and functionality on target architecture
  3. Integration Impact

    • Assess PATH and binary location changes needed
    • Evaluate impact on existing x86_64 workflow compatibility
    • Test notebook PDF export functionality
  4. Build Optimization

    • Compare Docker build times between approaches
    • Measure final image size differences
    • Evaluate CI/CD reliability improvements

Solution Options

Option 1: Pure EPEL Installation

  • Replace source build with EPEL package installation
  • Simplest implementation, fastest builds
  • May have version limitations

Option 2: Hybrid Approach

  • Use EPEL for ppc64le, keep current approach for x86_64
  • Architecture-specific optimization
  • Maintains feature parity where needed

Option 3: Conditional Fallback

  • Try EPEL first, fallback to source build if version insufficient
  • Best of both worlds approach
  • More complex implementation

Acceptance Criteria

  • Research and document EPEL pandoc version for ppc64le
  • Compare feature compatibility with current 3.7.0.2 requirements
  • Implement and test chosen approach in development environment
  • Measure and document build time and image size improvements
  • Validate PDF export functionality in notebook workflows
  • Update documentation with new installation approach
  • Ensure compatibility with existing x86_64 implementation

Context

Implementation Guidance

  1. Test EPEL pandoc installation in ppc64le container environment
  2. Validate version compatibility with existing notebook workflows
  3. Update install_pandoc.sh script with new approach
  4. Ensure proper cleanup and optimization in Docker build process
  5. Maintain backward compatibility with existing architectures

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

📋 Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions