commit 5d3a5985d44a293668c04f02e8e25a07a779c832 Author: EnumDev Date: Tue Jan 6 13:52:17 2026 +0200 Initial Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e58e5f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Exclude bpm archives +*.bpm \ No newline at end of file diff --git a/check-version.sh b/check-version.sh new file mode 100644 index 0000000..cd89e29 --- /dev/null +++ b/check-version.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Ignore this package +echo "ignore" diff --git a/pkg.info b/pkg.info new file mode 100644 index 0000000..2eaea2d --- /dev/null +++ b/pkg.info @@ -0,0 +1,15 @@ +name: libmad +description: A high-quality MPEG audio decoder +version: 0.15.1b +revision: 1 +url: https://www.underbit.com/products/mad/ +license: GPL2-or-later +architecture: any +type: source +depends: + - glibc +downloads: + - url: https://downloads.sourceforge.net/project/mad/libmad/${BPM_PKG_VERSION}/libmad-${BPM_PKG_VERSION}.tar.gz + extract_to: ${BPM_SOURCE} + extract_strip_components: 1 + checksum: bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690 diff --git a/source-files/libmad-fixes.patch b/source-files/libmad-fixes.patch new file mode 100644 index 0000000..aa40881 --- /dev/null +++ b/source-files/libmad-fixes.patch @@ -0,0 +1,91 @@ +Submitted By: Igor Živković +Date: 2013-07-04 +Initial Package Version: 0.15.1b +Upstream Status: Reported +Origin: Arch Linux packages repository +Description: Fixes compilation on x86-64 and optimization issues. + +diff -Naur libmad-0.15.1b.orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b.orig/configure.ac 2004-01-23 10:41:32.000000000 +0100 ++++ libmad-0.15.1b/configure.ac 2013-07-04 15:55:09.323764417 +0200 +@@ -124,71 +124,7 @@ + + if test "$GCC" = yes + then +- if test -z "$arch" +- then +- case "$host" in +- i386-*) ;; +- i?86-*) arch="-march=i486" ;; +- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; +- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; +- powerpc-*) ;; +- mips*-agenda-*) arch="-mcpu=vr4100" ;; +- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; +- esac +- fi +- +- case "$optimize" in +- -O|"-O "*) +- optimize="-O" +- optimize="$optimize -fforce-mem" +- optimize="$optimize -fforce-addr" +- : #x optimize="$optimize -finline-functions" +- : #- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -fthread-jumps" +- optimize="$optimize -fcse-follow-jumps" +- optimize="$optimize -fcse-skip-blocks" +- : #x optimize="$optimize -frerun-cse-after-loop" +- : #x optimize="$optimize -frerun-loop-opt" +- : #x optimize="$optimize -fgcse" +- optimize="$optimize -fexpensive-optimizations" +- optimize="$optimize -fregmove" +- : #* optimize="$optimize -fdelayed-branch" +- : #x optimize="$optimize -fschedule-insns" +- optimize="$optimize -fschedule-insns2" +- : #? optimize="$optimize -ffunction-sections" +- : #? optimize="$optimize -fcaller-saves" +- : #> optimize="$optimize -funroll-loops" +- : #> optimize="$optimize -funroll-all-loops" +- : #x optimize="$optimize -fmove-all-movables" +- : #x optimize="$optimize -freduce-all-givs" +- : #? optimize="$optimize -fstrict-aliasing" +- : #* optimize="$optimize -fstructure-noalias" +- +- case "$host" in +- arm*-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- mips*-*) +- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -finline-functions" +- ;; +- i?86-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- powerpc-apple-*) +- # this triggers an internal compiler error with gcc2 +- : #optimize="$optimize -fstrength-reduce" +- +- # this is really only beneficial with gcc3 +- : #optimize="$optimize -finline-functions" +- ;; +- *) +- # this sometimes provokes bugs in gcc 2.95.2 +- : #optimize="$optimize -fstrength-reduce" +- ;; +- esac +- ;; +- esac ++ optimize="-O2" + fi + + case "$host" in +@@ -297,6 +233,7 @@ + then + case "$host" in + i?86-*) FPM="INTEL" ;; ++ x86_64*) FPM="64BIT" ;; + arm*-*) FPM="ARM" ;; + mips*-*) FPM="MIPS" ;; + sparc*-*) FPM="SPARC" ;; diff --git a/source-files/libmad.pc.in b/source-files/libmad.pc.in new file mode 100644 index 0000000..4d8e707 --- /dev/null +++ b/source-files/libmad.pc.in @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: mad +Description: MPEG audio decoder +Requires: +Version: %V +Libs: -L${libdir} -lmad +Cflags: -I${includedir} diff --git a/source.sh b/source.sh new file mode 100644 index 0000000..802a4d2 --- /dev/null +++ b/source.sh @@ -0,0 +1,39 @@ +# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package +# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE +# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT + +# The prepare function is executed in the root of the temp directory +# This function is used for putting downloaded files to the correct location or applying patches +prepare() { + cd "$BPM_SOURCE" + # Consolidated fixes patch from BLFS + patch -Np1 -i "$BPM_WORKDIR"/libmad-fixes.patch + + # Generate libmad pkgconfig file + sed "s/%V/${BPM_PKG_VERSION}/g" "$BPM_WORKDIR"/libmad.pc.in > libmad.pc + + # Fix configure.ac + sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@g" -i configure.ac + touch NEWS AUTHORS ChangeLog + + autoreconf -fi +} + +# The build function is executed in the source directory +# This function is used to compile the source code +build() { + ./configure --prefix=/usr --disable-static + make +} + +# The package function is executed in the source directory +# This function is used to move the compiled files into the output directory +package() { + make DESTDIR="$BPM_OUTPUT" install + + # Install pkgconfig file + install -Dm644 "$BPM_SOURCE"/libmad.pc "$BPM_OUTPUT"/usr/lib/pkgconfig/libmad.pc + + # Install package license + install -Dm644 "$BPM_SOURCE"/{COPYING,COPYRIGHT} -t "$BPM_OUTPUT"/usr/share/licenses/libmad +}