This updates the mpg123 version and also removes packaging cruft.
Among that, a never-working patch for madvise and a very old i586
assembly source are gone. The output modules are now installed without
libtool files, just as .so (or .dylib). A future update to 1.28 will
probably also get rid of the static libraries (upstream fixed the build
to work around pkgsrc's wrapped libtool which ignores the autoconf
macros to trigger non-static default build).
These are the upstream changes:
1.27.2
------
(Trying some svn tag discipline: 1.27.1 has been tagged before, but
not released. Let's increment for any change.)
- Removed ports/Xcode, ports/cmake should handle that case.
- Ensure debug.h is included last where it matters to avoid
conflicts with debug/warning macros in system headers
(bug 308).
- Fix some debug/printf integer casts for 32 bit platforms (bug 309).
1.27.0
------
- libmpg123:
-- Running on precomputed tables now, no need to call
mpg123_init() anymore. That and mpg123_exit() are both just
empty shells. You can omit them if you do not care about earlier
libmpg123. You can check for MPG123_API_VERSION >= 46.
-- Added API that avoids enums, mapped-to by default unless
MPG123_ENUM_API is defined.
- libout123:
-- Added API that avoids enums, mapped-to by default unless
MPG123_ENUM_API is defined.
-- Added device enumeration for win32, win32_wasapi, alsa, pulse.
This increments the output module ABI version to 3.
-- You can choose output devices now on Windows.
-- Changed default output module order to put pulse before alsa since
we now ensure that pulse is not inadvertedly started by the
autospawn feature. This improves the experience on desktop
systems with pulse where the alsa to pulse use causes glitches.
Note that on a modern Linux desktop (Ubuntu), you will not
escape an instance of pulseaudio being started, with even the
enumeration of the ALSA default device summoning the daemon.
If you _want_ sound daemon autospawn behaviour on other platforms,
you need to trigger it outside of libout123.
- examples: Update for dropped mpg123_init(), more sensible
copyright notes.
- out123:
-- safer limiting of maximum playback rate
-- Added --list-devices.
- mpg123:
-- Fix --continue output to print track_count+1 as continue
position after hitting the end of playlist. Makes scripts/conplay
go to back to the beginning again (regression in 1.24.0, bug 250).
-- Remote control API version 9 with @I { .. @I } wrapping of ID3 and
playlist display.
-- Added --list-devices.
-- Fix console printout on Windows.
-- Fix terminal control logic to better handle cases where stdin or
stderr is not a terminal, also avoid enabling control if you specify
stdin as input file.
- Updated debugging/warning/error message macros to include the function
name.
- Support float and 32/24 bit integer output also with fixed-point decoders (conversion from 16 bit precision).
- A-Law output encoding is actually implemented now (Michael introduced the encoding back in the old days without ever implementing theconversion table, apparently).
- Added --with-cpu=arm_fpu as decoder choice for runtime switch between plain fpu code and NEON.
- Fix ARM builds to work properly on debian systems without special CFLAGS (NEON decoder, specifically).
- Make scripts/benchmark-cpu.pl check the return value instead of delivering crazy timings for crashed mpg123.
- Trigger track initialization in mpg123_info() to avoid use of uninitialized variables (watch out for MPG123_NEED_MORE return value!).
- Fix integer code to 32 bit numbers where it would waste 64 bit on modern systems.
- Add non-executable stack marking also to ARM assembly.
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
- fix a buffer overflow:
"A malicious formatted mp3/2 causes mpg123 to fail header checks,
this may allow arbitrary code to be executed with the privilege
of the user trying to play the mp3."
- patch from Debian but retain code style.