Ver código fonte

feat(deps): add bc-7.0.3 source code

Add bc calculator utility version 7.0.3 with enhanced dependency handling
requirements. Documentation updated to clarify build dependency management
and LFS integration guidelines.
clanker 10 meses atrás
pai
commit
3980b8a923

+ 129 - 0
bc-7.0.3/MANIFEST.usm

@@ -0,0 +1,129 @@
+{
+  "provides" : {
+    "locale:zh_CN.GB18030/bc" : "as-expected",
+    "locale:en_NZ.US-ASCII/bc" : "as-expected",
+    "locale:de_AT.ISO8859-15/bc" : "as-expected",
+    "locale:nl_BE.ISO8859-15/bc" : "as-expected",
+    "locale:en_CA.utf8/bc" : "as-expected",
+    "locale:pl_PL.ISO8859-2/bc" : "as-expected",
+    "locale:zh_CN.eucCN/bc" : "as-expected",
+    "locale:fr_CA.utf8/bc" : "as-expected",
+    "locale:zh_CN.GB2312/bc" : "as-expected",
+    "locale:zh_CN.GBK/bc" : "as-expected",
+    "locale:fr_CH.ISO8859-1/bc" : "as-expected",
+    "locale:en_US.US_ASCII/bc" : "as-expected",
+    "locale:fr_CH.utf8/bc" : "as-expected",
+    "locale:fr_FR.ISO8859-15/bc" : "as-expected",
+    "locale:fr_CH.UTF-8/bc" : "as-expected",
+    "locale:en_GB.ISO8859-15/bc" : "as-expected",
+    "locale:de_CH.utf8/bc" : "as-expected",
+    "locale:en_IE.ISO8859-15/bc" : "as-expected",
+    "locale:en_GB.ISO8859-1/bc" : "as-expected",
+    "locale:fr_FR.UTF-8/bc" : "as-expected",
+    "locale:en_AU.ISO8859-15/bc" : "as-expected",
+    "locale:de_DE.UTF-8/bc" : "as-expected",
+    "locale:pt_PT.ISO8859-15/bc" : "as-expected",
+    "locale:ru_RU.CP1251/bc" : "as-expected",
+    "locale:pl_PL.UTF-8/bc" : "as-expected",
+    "locale:fr_CA.UTF-8/bc" : "as-expected",
+    "locale:ru_RU.utf8/bc" : "as-expected",
+    "locale:en_US.ISO8859-15/bc" : "as-expected",
+    "locale:es_ES.utf8/bc" : "as-expected",
+    "locale:de_DE.utf8/bc" : "as-expected",
+    "locale:nl_NL.utf8/bc" : "as-expected",
+    "locale:pt_PT.UTF-8/bc" : "as-expected",
+    "locale:en_AU.US-ASCII/bc" : "as-expected",
+    "locale:de_CH.UTF-8/bc" : "as-expected",
+    "locale:de_DE.ISO8859-15/bc" : "as-expected",
+    "rootpath:share/man/man1/dc.1" : "as-expected",
+    "locale:de_AT.UTF-8/bc" : "as-expected",
+    "locale:pt_BR.ISO8859-15/bc" : "as-expected",
+    "locale:en_NZ.ISO8859-15/bc" : "as-expected",
+    "locale:es_ES.ISO8859-1/bc" : "as-expected",
+    "locale:zh_CN.utf8/bc" : "as-expected",
+    "locale:en_US.ISO8859-1/bc" : "as-expected",
+    "locale:en_US.utf8/bc" : "as-expected",
+    "locale:fr_BE.ISO8859-1/bc" : "as-expected",
+    "locale:zh_CN.UTF-8/bc" : "as-expected",
+    "locale:nl_BE.ISO8859-1/bc" : "as-expected",
+    "locale:nl_NL.UTF-8/bc" : "as-expected",
+    "locale:pt_BR.UTF-8/bc" : "as-expected",
+    "locale:en_US.UTF-8/bc" : "as-expected",
+    "locale:en_IE.US_ASCII/bc" : "as-expected",
+    "locale:fr_BE.UTF-8/bc" : "as-expected",
+    "locale:en_CA.US-ASCII/bc" : "as-expected",
+    "locale:fr_FR.utf8/bc" : "as-expected",
+    "locale:en_GB.US-ASCII/bc" : "as-expected",
+    "locale:en_CA.ISO8859-1/bc" : "as-expected",
+    "locale:pl_PL.utf8/bc" : "as-expected",
+    "locale:en_NZ.ISO8859-1/bc" : "as-expected",
+    "locale:en_GB.utf8/bc" : "as-expected",
+    "locale:en_NZ.utf8/bc" : "as-expected",
+    "locale:en_IE.ISO8859-1/bc" : "as-expected",
+    "locale:en_CA.UTF-8/bc" : "as-expected",
+    "locale:ja_JP.utf8/bc" : "as-expected",
+    "locale:en_US/bc" : "as-expected",
+    "rootpath:share/man/man1/bc.1" : "as-expected",
+    "locale:en_NZ.UTF-8/bc" : "as-expected",
+    "locale:en_AU.ISO8859-1/bc" : "as-expected",
+    "locale:pt_PT.utf8/bc" : "as-expected",
+    "locale:en_IE.UTF-8/bc" : "as-expected",
+    "locale:fr_FR.ISO8859-1/bc" : "as-expected",
+    "locale:fr_CA.ISO8859-15/bc" : "as-expected",
+    "locale:de_DE.ISO8859-1/bc" : "as-expected",
+    "locale:ru_RU.ISO8859-5/bc" : "as-expected",
+    "locale:en_AU.UTF-8/bc" : "as-expected",
+    "locale:ru_RU.UTF-8/bc" : "as-expected",
+    "locale:fr_CA.ISO8859-1/bc" : "as-expected",
+    "locale:ru_RU.KOI8-R/bc" : "as-expected",
+    "bin:bc" : "as-expected",
+    "locale:pt_PT.ISO8859-1/bc" : "as-expected",
+    "locale:de_CH.ISO8859-15/bc" : "as-expected",
+    "locale:en_GB.UTF-8/bc" : "as-expected",
+    "locale:de_CH.ISO8859-1/bc" : "as-expected",
+    "locale:fr_BE.ISO8859-15/bc" : "as-expected",
+    "locale:ja_JP.eucJP/bc" : "as-expected",
+    "locale:pt_BR.utf8/bc" : "as-expected",
+    "locale:de_AT.ISO8859-1/bc" : "as-expected",
+    "locale:ru_RU.CP866/bc" : "as-expected",
+    "locale:en_IE.utf8/bc" : "as-expected",
+    "locale:es_ES.ISO8859-15/bc" : "as-expected",
+    "locale:en_AU.utf8/bc" : "as-expected",
+    "locale:nl_NL.ISO8859-15/bc" : "as-expected",
+    "locale:en_CA.ISO8859-15/bc" : "as-expected",
+    "locale:en_US.US-ASCII/bc" : "as-expected",
+    "locale:ja_JP.UTF-8/bc" : "as-expected",
+    "locale:nl_NL.ISO8859-1/bc" : "as-expected",
+    "locale:fr_CH.ISO8859-15/bc" : "as-expected",
+    "locale:pt_BR.ISO8859-1/bc" : "as-expected",
+    "locale:es_ES.UTF-8/bc" : "as-expected",
+    "locale:de_AT.utf8/bc" : "as-expected",
+    "locale:fr_BE.utf8/bc" : "as-expected",
+    "bin:dc" : "as-expected"
+  },
+  "flags" : [
+    "simpleBuildEnvironment"
+  ],
+  "summary" : "An arbitrary-precision calculator language",
+  "name" : "bc",
+  "md" : "PACKAGE.md",
+  "depends" : {
+    "build" : [
+      "bin:gcc",
+      "bin:make"
+    ],
+    "runtime" : [],
+    "manage" : [
+      "bin:wget",
+      "bin:tar"
+    ]
+  },
+  "url" : "https://git.gavinhoward.com/gavin/bc",
+  "version" : "7.0.3",
+  "execs" : {
+    "build" : "usm-scripts/build.sh",
+    "test" : "usm-scripts/test.sh",
+    "install" : "usm-scripts/install.sh",
+    "acquire" : "usm-scripts/acquire.sh"
+  }
+}

+ 42 - 0
bc-7.0.3/PACKAGE.md

@@ -0,0 +1,42 @@
+# bc-7.0.3
+
+bc is an arbitrary-precision calculator language with a syntax similar to the C programming language. It supports interactive execution of statements, arbitrary precision numbers, and execution of scripts.
+
+## Features
+
+- Arbitrary precision arithmetic
+- Interactive calculator mode
+- Script execution capabilities
+- Standard mathematical functions
+- Support for variables and arrays
+- GNU bc extensions compatibility
+- Readline support for improved line editing
+
+## Usage
+
+bc can be used interactively:
+
+```bash
+bc
+scale=20
+1/3
+.33333333333333333333
+quit
+```
+
+Or for script execution:
+
+```bash
+bc -l script.bc
+```
+
+## Installation
+
+This package installs the bc calculator with readline support enabled, providing enhanced line editing features including command history, tab completion, and cursor movement.
+
+## Dependencies
+
+- readline library (for enhanced line editing)
+- GCC compiler (for building)
+- Make utility (for building)
+- Bash shell (for script execution)

+ 20 - 0
bc-7.0.3/usm-scripts/acquire.sh

@@ -0,0 +1,20 @@
+#!/bin/bash
+set -e
+
+ARCHIVE_URL="https://github.com/gavinhoward/bc/releases/download/7.0.3/bc-7.0.3.tar.xz"
+ARCHIVE_NAME="bc-7.0.3.tar.xz"
+SOURCE_DIR="sources/bc"
+
+echo "Downloading bc source..."
+wget -O ${ARCHIVE_NAME} ${ARCHIVE_URL}
+
+echo "Creating source directory..."
+mkdir -p ${SOURCE_DIR}
+
+echo "Extracting archive..."
+tar -xf ${ARCHIVE_NAME} -C ${SOURCE_DIR} --strip-components=1
+
+echo "Cleaning up..."
+rm ${ARCHIVE_NAME}
+
+echo "Source acquisition complete."

+ 16 - 0
bc-7.0.3/usm-scripts/build.sh

@@ -0,0 +1,16 @@
+#!/bin/bash
+set -e
+
+build_dir=$1
+
+# With simpleBuildEnvironment flag, we're already in build directory
+# Change to source directory for configuration
+cd sources/bc
+
+echo "Configuring bc..."
+./configure --prefix=${PREFIX} --bindir=${PREFIX}${BINDIR} -G -O3 -r -std=c99
+
+echo "Building bc..."
+make
+
+echo "Build complete."

+ 15 - 0
bc-7.0.3/usm-scripts/install.sh

@@ -0,0 +1,15 @@
+#!/bin/bash
+set -e
+
+build_dir=$1
+install_dir=$2
+install_type=$3
+
+# With simpleBuildEnvironment flag, we're already in build directory
+# Change to source directory for installation
+cd sources/bc
+
+echo "Installing bc to ${install_dir}..."
+make DESTDIR=${install_dir} install
+
+echo "Installation complete."

+ 13 - 0
bc-7.0.3/usm-scripts/test.sh

@@ -0,0 +1,13 @@
+#!/bin/bash
+set -e
+
+build_dir=$1
+
+# With simpleBuildEnvironment flag, we're already in build directory
+# Change to source directory for testing
+cd sources/bc
+
+echo "Running bc tests..."
+make test
+
+echo "All tests passed."

+ 7 - 0
prompt-enhanced.md

@@ -40,6 +40,8 @@ LFS References:
    - Use relative paths from `{name}-{version}` root
    - Include proper error handling
    - `acquire.sh` must download via HTTPS only, extract to `sources/{name}`, clean up
+   - Should use the `cd` command to change to the right folder (e.g. `cd sources/{name}`)
+   - Should stay as close as possible to the commands in the LFS documentation.
 
 3. Manifest:
    - Include ALL required fields
@@ -47,6 +49,11 @@ LFS References:
    - Point `md` property to `PACKAGE.md`
    - Leave `provides` section empty
 
+4. Dependencies:
+   - Do not modify the host system
+   - If there is a missing build dependency stop and notify the user
+   - Add any such dependencies `depends` section of the manifest.
+
 **VALIDATION:**
 
 1. Create complete package structure