Update audio/libcdio to version 2.1.0.

Also fix fallout.

I've been working with upstream to have the NetBSD driver work on both
NetBSD *and* OpenBSD, and here it is.

Thanks to upstream for helping, particularly Rocky Bernstein and Thomas
Schmitt!

Tested and OK cwen@, thanks!
This commit is contained in:
edd 2019-05-12 15:26:06 +00:00
parent fd98fe7272
commit 7571183596
19 changed files with 62 additions and 805 deletions

View File

@ -1,10 +1,10 @@
# $OpenBSD: Makefile,v 1.52 2019/02/03 03:58:35 bentley Exp $
# $OpenBSD: Makefile,v 1.53 2019/05/12 15:26:06 edd Exp $
COMMENT= advanced music player
VERSION= 1.0
DISTNAME= aqualung-${VERSION}
REVISION= 8
REVISION= 9
EPOCH= 0
CATEGORIES= audio
@ -36,6 +36,7 @@ MODLUA_SA= Yes
LIB_DEPENDS= audio/flac \
audio/lame \
audio/libcdio \
audio/libcdio-paranoia \
audio/libcddb \
audio/libmad \
audio/libmodplug \

View File

@ -1,10 +1,10 @@
# $OpenBSD: Makefile,v 1.76 2019/02/21 22:37:58 sthen Exp $
# $OpenBSD: Makefile,v 1.77 2019/05/12 15:26:06 edd Exp $
COMMENT = input and output plugins for Audacious
V = 3.9
DISTNAME = audacious-plugins-$V
REVISION = 1
REVISION = 2
CATEGORIES = audio multimedia
@ -40,6 +40,7 @@ LIB_DEPENDS = audio/faad>=2.7 \
audio/flac \
audio/lame \
audio/libcdio \
audio/libcdio-paranoia \
audio/libcue \
audio/libmodplug \
audio/libsamplerate \

View File

@ -1,11 +1,11 @@
# $OpenBSD: Makefile,v 1.17 2019/03/08 20:00:39 cwen Exp $
# $OpenBSD: Makefile,v 1.18 2019/05/12 15:26:07 edd Exp $
COMMENT = Qt-based MPD client
V = 2.3.2
DISTNAME = cantata-${V}
HOMEPAGE = https://github.com/CDrummond/cantata
REVISION = 0
REVISION = 1
MASTER_SITES = https://github.com/CDrummond/cantata/releases/download/v${V}/
EXTRACT_SUFX = .tar.bz2
@ -18,7 +18,7 @@ PERMIT_PACKAGE_CDROM = Yes
WANTLIB += ${COMPILER_LIBCXX} Qt5Concurrent Qt5Core Qt5DBus Qt5Gui
WANTLIB += Qt5Multimedia Qt5Network Qt5Sql Qt5Svg Qt5Widgets Qt5Xml
WANTLIB += avcodec avformat avutil c cddb cdio cdio_cdda cdio_paranoia
WANTLIB += m mpg123 mtp musicbrainz5 tag z avahi-client avahi-common
WANTLIB += iconv m mpg123 mtp musicbrainz5 tag z avahi-client avahi-common
MODULES = devel/cmake \
x11/qt5
@ -27,6 +27,7 @@ RUN_DEPENDS += devel/desktop-file-utils
RUN_DEPENDS += x11/gtk+3,-guic
LIB_DEPENDS += audio/mpg123 \
audio/libcdio \
audio/libcdio-paranoia \
audio/libcddb \
audio/libmusicbrainz5 \
audio/taglib \

View File

@ -1,9 +1,10 @@
# $OpenBSD: Makefile,v 1.21 2019/05/06 14:58:54 cwen Exp $
# $OpenBSD: Makefile,v 1.22 2019/05/12 15:26:07 edd Exp $
COMMENT-main= ncurses-based music player
COMMENT-ffmpeg= ffmpeg input plugin for cmus (.aac, .mp4...)
V= 2.8.0
REVISION= 0
DISTNAME= cmus-${V}
PKGNAME-main= ${PKGNAME}
PKGNAME-ffmpeg= cmus-ffmpeg-${V}
@ -31,6 +32,7 @@ WANTLIB-main+= ogg vorbis
COMPILER= base-clang ports-gcc
LIB_DEPENDS-main= audio/flac \
audio/libcdio \
audio/libcdio-paranoia \
audio/libdiscid \
audio/libmad \
audio/libogg \

View File

@ -1,44 +1,31 @@
# $OpenBSD: Makefile,v 1.22 2018/10/24 14:27:58 sthen Exp $
# $OpenBSD: Makefile,v 1.23 2019/05/12 15:26:07 edd Exp $
COMMENT= compact disk input and control library
DISTNAME= libcdio-0.80
REVISION= 10
DISTNAME= libcdio-2.1.0
EXTRACT_SUFX= .tar.bz2
CATEGORIES= audio devel
MASTER_SITES= ${MASTER_SITE_GNU:=libcdio/}
SHARED_LIBS= cdio 0.1 \
cdio++ 0.1 \
cdio_cdda 0.1 \
cdio_paranoia 0.1 \
iso9660 0.1 \
iso9660++ 0.1 \
udf 0.1
SHARED_LIBS= cdio 1.0 \
cdio++ 1.0 \
iso9660 1.0 \
iso9660++ 1.0 \
udf 1.0
HOMEPAGE= https://www.gnu.org/software/libcdio/
# GPLv2+
PERMIT_PACKAGE_CDROM= Yes
WANTLIB= c cddb iconv m ncurses ${COMPILER_LIBCXX}
COMPILER = base-clang ports-gcc base-gcc
WANTLIB= c cddb curses iconv m ${COMPILER_LIBCXX}
LIB_DEPENDS= audio/libcddb \
converters/libiconv
BUILD_DEPENDS= devel/libtool
USE_GMAKE= Yes
CONFIGURE_STYLE= autoconf
AUTOCONF_VERSION= 2.61
CONFIGURE_STYLE=gnu
CONFIGURE_ARGS= --disable-vcd-info
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib"
post-extract:
@cp ${FILESDIR}/openbsd.c ${WRKSRC}/lib/driver
post-install:
cd ${WRKSRC} && ${INSTALL_DATA} libcdio_cdda.pc libcdio_paranoia.pc \
${PREFIX}/lib/pkgconfig
.include <bsd.port.mk>

View File

@ -1,2 +1,2 @@
SHA256 (libcdio-0.80.tar.gz) = saQaNNtaA0ZJEJwzKHguTi+kOLHivdxFjNJg9g73ymY=
SIZE (libcdio-0.80.tar.gz) = 2083287
SHA256 (libcdio-2.1.0.tar.bz2) = hVDpWJ29WUv6yTuB7PEpsdydDVHpD5aW8bL5sq8ycSs=
SIZE (libcdio-2.1.0.tar.bz2) = 1759040

View File

@ -1,547 +0,0 @@
/* $OpenBSD: openbsd.c,v 1.4 2012/08/19 22:30:37 ajacoutot Exp $ */
/*
* Copyright (c) 2008 Federico G. Schwindt
* Copyright (c) 2003 Matthias Drochner
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <cdio/sector.h>
#include <cdio/util.h>
#include "cdio_assert.h"
#include "cdio_private.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/cdio.h>
#include <sys/scsiio.h>
#define DEFAULT_CDIO_DEVICE "/dev/rcd0c"
typedef struct {
generic_img_private_t gen;
struct ioc_toc_header tochdr;
struct cd_toc_entry tocent[CDIO_CD_MAX_TRACKS + 1];
} _img_private_t;
static driver_return_code_t
run_mmc_cmd_openbsd(void *p_user_data, unsigned int i_timeout_ms,
unsigned int i_cdb, const mmc_cdb_t *p_cdb,
cdio_mmc_direction_t e_direction, unsigned int i_buf, void *p_buf)
{
const _img_private_t *p_env = p_user_data;
scsireq_t req;
memset(&req, 0, sizeof(req));
memcpy(&req.cmd[0], p_cdb, i_cdb);
req.cmdlen = i_cdb;
req.datalen = i_buf;
req.databuf = p_buf;
req.timeout = i_timeout_ms;
req.flags = e_direction ==
SCSI_MMC_DATA_READ ? SCCMD_READ : SCCMD_WRITE;
if (ioctl(p_env->gen.fd, SCIOCCOMMAND, &req) < 0) {
cdio_info("ioctl SCIOCCOMMAND failed: %s\n", strerror(errno));
return (DRIVER_OP_ERROR);
}
if (req.retsts != SCCMD_OK) {
cdio_info("unexpected status for SCIOCCOMMAND %#x: %#x\n",
req.cmd[0], req.retsts);
return (DRIVER_OP_ERROR);
}
return (DRIVER_OP_SUCCESS);
}
static driver_return_code_t
audio_get_volume_openbsd(void *p_user_data, cdio_audio_volume_t *p_volume)
{
const _img_private_t *p_env = p_user_data;
return (ioctl(p_env->gen.fd, CDIOCGETVOL, p_volume));
}
static driver_return_code_t
audio_pause_openbsd(void *p_user_data)
{
const _img_private_t *p_env = p_user_data;
return (ioctl(p_env->gen.fd, CDIOCPAUSE));
}
static driver_return_code_t
audio_play_msf_openbsd(void *p_user_data, msf_t *p_start_msf, msf_t *p_end_msf)
{
const _img_private_t *p_env = p_user_data;
struct ioc_play_msf a;
a.start_m = cdio_from_bcd8(p_start_msf->m);
a.start_s = cdio_from_bcd8(p_start_msf->s);
a.start_f = cdio_from_bcd8(p_start_msf->f);
a.end_m = cdio_from_bcd8(p_end_msf->m);
a.end_s = cdio_from_bcd8(p_end_msf->s);
a.end_f = cdio_from_bcd8(p_end_msf->f);
return (ioctl(p_env->gen.fd, CDIOCPLAYMSF, (char *)&a));
}
#if !USE_MMC_SUBCHANNEL
static driver_return_code_t
audio_read_subchannel_openbsd(void *p_user_data, cdio_subchannel_t *subchannel)
{
const _img_private_t *p_env = p_user_data;
struct ioc_read_subchannel s;
struct cd_sub_channel_info data;
bzero(&s, sizeof(s));
s.data = &data;
s.data_len = sizeof(data);
s.address_format = CD_MSF_FORMAT;
s.data_format = CD_CURRENT_POSITION;
if (ioctl(p_env->gen.fd, CDIOCREADSUBCHANNEL, &s) != -1) {
subchannel->control = s.data->what.position.control;
subchannel->track = s.data->what.position.track_number;
subchannel->index = s.data->what.position.index_number;
subchannel->abs_addr.m =
cdio_to_bcd8(s.data->what.position.absaddr.msf.minute);
subchannel->abs_addr.s =
cdio_to_bcd8(s.data->what.position.absaddr.msf.second);
subchannel->abs_addr.f =
cdio_to_bcd8(s.data->what.position.absaddr.msf.frame);
subchannel->rel_addr.m =
cdio_to_bcd8(s.data->what.position.reladdr.msf.minute);
subchannel->rel_addr.s =
cdio_to_bcd8(s.data->what.position.reladdr.msf.second);
subchannel->rel_addr.f =
cdio_to_bcd8(s.data->what.position.reladdr.msf.frame);
subchannel->audio_status = s.data->header.audio_status;
return (DRIVER_OP_SUCCESS);
} else {
cdio_info("ioctl CDIOCREADSUBCHANNEL failed: %s\n",
strerror(errno));
return (DRIVER_OP_ERROR);
}
}
#endif
static driver_return_code_t
audio_resume_openbsd(void *p_user_data)
{
const _img_private_t *p_env = p_user_data;
return (ioctl(p_env->gen.fd, CDIOCRESUME));
}
static driver_return_code_t
audio_set_volume_openbsd(void *p_user_data, cdio_audio_volume_t *p_volume)
{
const _img_private_t *p_env = p_user_data;
return (ioctl(p_env->gen.fd, CDIOCSETVOL, p_volume));
}
static driver_return_code_t
audio_stop_openbsd(void *p_user_data)
{
const _img_private_t *p_env = p_user_data;
return (ioctl(p_env->gen.fd, CDIOCSTOP));
}
static driver_return_code_t
eject_media_openbsd(void *p_user_data)
{
_img_private_t *p_env = p_user_data;
driver_return_code_t ret = DRIVER_OP_SUCCESS;
bool was_open = false;
if (p_env->gen.fd == -1)
p_env->gen.fd = open(p_env->gen.source_name,
O_RDONLY|O_NONBLOCK, 0);
else
was_open = true;
if (p_env->gen.fd == -1)
return (DRIVER_OP_ERROR);
if (ioctl(p_env->gen.fd, CDIOCALLOW) == -1)
cdio_info("ioctl CDIOCALLOW failed: %s\n", strerror(errno));
if (ioctl(p_env->gen.fd, CDIOCEJECT) == -1) {
cdio_info("ioctl CDIOCEJECT failed: %s\n", strerror(errno));
ret = DRIVER_OP_ERROR;
}
if (!was_open) {
close(p_env->gen.fd);
p_env->gen.fd = -1;
}
return (ret);
}
static const char *
get_arg_openbsd(void *p_user_data, const char key[])
{
_img_private_t *p_env = p_user_data;
if (!strcmp(key, "source")) {
return (p_env->gen.source_name);
} else if (!strcmp(key, "access-mode")) {
return ("READ_CD");
}
return (NULL);
}
static bool
read_toc_openbsd(void *p_user_data)
{
_img_private_t *p_env = p_user_data;
struct ioc_read_toc_entry req;
if (ioctl(p_env->gen.fd, CDIOREADTOCHEADER, &p_env->tochdr) == -1) {
cdio_info("error in ioctl CDIOREADTOCHEADER: %s\n",
strerror(errno));
return (false);
}
p_env->gen.i_first_track = p_env->tochdr.starting_track;
p_env->gen.i_tracks = (p_env->tochdr.ending_track -
p_env->tochdr.starting_track) + 1;
req.address_format = CD_LBA_FORMAT;
req.starting_track = p_env->gen.i_first_track;
req.data_len = sizeof(p_env->tocent);
req.data = p_env->tocent;
if (ioctl(p_env->gen.fd, CDIOREADTOCENTRIES, &req) == -1) {
cdio_info("error in ioctl CDIOREADTOCENTRIES: %s\n",
strerror(errno));
return (false);
}
p_env->gen.toc_init = true;
return (true);
}
static lba_t
get_track_lba_openbsd(void *p_user_data, track_t i_track)
{
_img_private_t *p_env = p_user_data;
if (!p_env->gen.toc_init)
read_toc_openbsd(p_env);
if (i_track == CDIO_CDROM_LEADOUT_TRACK)
i_track = p_env->gen.i_first_track + p_env->gen.i_tracks;
if (!p_env->gen.toc_init ||
i_track > (p_env->gen.i_first_track + p_env->gen.i_tracks) ||
i_track < p_env->gen.i_first_track)
return (CDIO_INVALID_LBA);
return (p_env->tocent[i_track - p_env->gen.i_first_track].addr.lba +
CDIO_PREGAP_SECTORS);
}
static lsn_t
get_disc_last_lsn_openbsd(void *user_data)
{
return (get_track_lba_openbsd(user_data, CDIO_CDROM_LEADOUT_TRACK));
}
static driver_return_code_t
get_last_session_openbsd(void *p_user_data, lsn_t *i_last_session)
{
const _img_private_t *p_env = p_user_data;
int addr;
if (ioctl(p_env->gen.fd, CDIOREADMSADDR, &addr) == 0) {
*i_last_session = addr;
return (DRIVER_OP_SUCCESS);
} else {
cdio_info("ioctl CDIOREADMSADDR failed: %s\n",
strerror(errno));
return (DRIVER_OP_ERROR);
}
}
static track_format_t
get_track_format_openbsd(void *p_user_data, track_t i_track)
{
_img_private_t *p_env = p_user_data;
if (!p_env)
return (TRACK_FORMAT_ERROR);
if (!p_env->gen.toc_init)
read_toc_openbsd(p_env);
if (!p_env->gen.toc_init ||
i_track > (p_env->gen.i_first_track + p_env->gen.i_tracks) ||
i_track < p_env->gen.i_first_track)
return (TRACK_FORMAT_ERROR);
if (p_env->tocent[i_track - 1].control & CDIO_CDROM_DATA_TRACK)
return (TRACK_FORMAT_DATA);
else
return (TRACK_FORMAT_AUDIO);
}
static bool
get_track_green_openbsd(void *user_data, track_t i_track)
{
return (get_track_format_openbsd(user_data, i_track) ==
TRACK_FORMAT_XA);
}
static int
read_audio_sectors_openbsd(void *p_user_data, void *p_buf, lsn_t i_lsn,
unsigned int i_blocks)
{
_img_private_t *p_env = p_user_data;
return (mmc_read_sectors(p_env->gen.cdio, p_buf, i_lsn,
CDIO_MMC_READ_TYPE_CDDA, i_blocks));
}
static int
read_mode2_sector_openbsd(void *p_user_data, void *p_buf, lsn_t i_lsn,
bool b_mode2_form2)
{
scsireq_t req;
_img_private_t *p_env = p_user_data;
char buf[M2RAW_SECTOR_SIZE] = { 0, };
memset(&req, 0, sizeof(req));
req.cmd[0] = CDIO_MMC_GPCMD_READ_CD;
req.cmd[2] = (i_lsn >> 24) & 0xff;
req.cmd[3] = (i_lsn >> 16) & 0xff;
req.cmd[4] = (i_lsn >> 8) & 0xff;
req.cmd[5] = (i_lsn >> 0) & 0xff;
req.cmd[8] = 1;
req.cmd[9] = 0x58; /* subheader + userdata + ECC */
req.cmdlen = 10;
req.datalen = M2RAW_SECTOR_SIZE;
req.databuf = buf;
req.timeout = 10000;
req.flags = SCCMD_READ;
if (ioctl(p_env->gen.fd, SCIOCCOMMAND, &req) < 0) {
cdio_info("ioctl SCIOCCOMMAND failed: %s\n", strerror(errno));
return (DRIVER_OP_ERROR);
}
if (req.retsts != SCCMD_OK) {
cdio_info("unexpected status for SCIOCCOMMAND %#x: %#x\n",
req.cmd[0], req.retsts);
return (DRIVER_OP_ERROR);
}
if (b_mode2_form2)
memcpy(p_buf, buf, M2RAW_SECTOR_SIZE);
else
memcpy(p_buf, buf + CDIO_CD_SUBHEADER_SIZE, CDIO_CD_FRAMESIZE);
return (DRIVER_OP_SUCCESS);
}
static int
read_mode2_sectors_openbsd(void *p_user_data, void *p_buf, lsn_t i_lsn,
bool b_mode2_form2, unsigned int i_blocks)
{
uint16_t i_blocksize = b_mode2_form2 ? M2RAW_SECTOR_SIZE :
CDIO_CD_FRAMESIZE;
unsigned int i;
int retval;
for (i = 0; i < i_blocks; i++) {
if ((retval = read_mode2_sector_openbsd(p_user_data,
((char *)p_buf) + (i_blocksize * i), i_lsn + i,
b_mode2_form2)))
return (retval);
}
return (DRIVER_OP_SUCCESS);
}
static int
set_arg_openbsd(void *p_user_data, const char key[], const char value[])
{
_img_private_t *p_env = p_user_data;
if (!strcmp(key, "source")) {
if (!value)
return (DRIVER_OP_ERROR);
free(p_env->gen.source_name);
p_env->gen.source_name = strdup(value);
} else if (!strcmp(key, "access-mode")) {
if (strcmp(value, "READ_CD"))
cdio_info("unknown access type: %s ignored.", value);
} else
return (DRIVER_OP_ERROR);
return (DRIVER_OP_SUCCESS);
}
static cdio_funcs_t _funcs = {
.audio_get_volume = audio_get_volume_openbsd,
.audio_pause = audio_pause_openbsd,
.audio_play_msf = audio_play_msf_openbsd,
.audio_play_track_index = NULL,
#if USE_MMC_SUBCHANNEL
.audio_read_subchannel = audio_read_subchannel_mmc,
#else
.audio_read_subchannel = audio_read_subchannel_openbsd,
#endif
.audio_resume = audio_resume_openbsd,
.audio_set_volume = audio_set_volume_openbsd,
.audio_stop = audio_stop_openbsd,
.eject_media = eject_media_openbsd,
.free = cdio_generic_free,
.get_arg = get_arg_openbsd,
.get_blocksize = NULL,
.get_cdtext = get_cdtext_generic,
.get_default_device = cdio_get_default_device_openbsd,
.get_devices = cdio_get_devices_openbsd,
.get_disc_last_lsn = get_disc_last_lsn_openbsd,
.get_discmode = get_discmode_generic,
.get_drive_cap = get_drive_cap_mmc,
.get_first_track_num = get_first_track_num_generic,
.get_hwinfo = NULL,
.get_last_session = get_last_session_openbsd,
.get_media_changed = get_media_changed_mmc,
.get_mcn = get_mcn_mmc,
.get_num_tracks = get_num_tracks_generic,
.get_track_channels = get_track_channels_generic,
.get_track_copy_permit = get_track_copy_permit_generic,
.get_track_lba = get_track_lba_openbsd,
.get_track_format = get_track_format_openbsd,
.get_track_green = get_track_green_openbsd,
.get_track_msf = NULL,
.get_track_preemphasis = get_track_preemphasis_generic,
.lseek = cdio_generic_lseek,
.read = cdio_generic_read,
.read_audio_sectors = read_audio_sectors_openbsd,
.read_data_sectors = read_data_sectors_generic,
.read_mode2_sector = read_mode2_sector_openbsd,
.read_mode2_sectors = read_mode2_sectors_openbsd,
.read_mode1_sector = NULL,
.read_mode1_sectors = NULL,
.read_toc = read_toc_openbsd,
.run_mmc_cmd = run_mmc_cmd_openbsd,
.set_arg = set_arg_openbsd,
.set_blocksize = NULL,
.set_speed = NULL,
};
bool
cdio_have_openbsd(void)
{
return (true);
}
CdIo *
cdio_open_openbsd(const char *source_name)
{
CdIo *ret;
_img_private_t *_data;
_data = calloc(1, sizeof(_img_private_t));
_data->gen.init = false;
_data->gen.toc_init = false;
_data->gen.fd = -1;
set_arg_openbsd(_data, "source",
(source_name ? source_name : DEFAULT_CDIO_DEVICE));
if (source_name && !cdio_is_device_generic(source_name))
goto error;
ret = cdio_new(_data, &_funcs);
if (!ret)
goto error;
if (!cdio_generic_init(_data, O_RDONLY))
goto error;
return (ret);
error:
cdio_generic_free(_data);
return (NULL);
}
CdIo *
cdio_open_am_openbsd(const char *source_name, const char *am)
{
return (cdio_open_openbsd(source_name));
}
char *
cdio_get_default_device_openbsd()
{
return (strdup(DEFAULT_CDIO_DEVICE));
}
char **
cdio_get_devices_openbsd(void)
{
char drive[40];
char **drives = NULL;
unsigned int num_drives = 0;
int cdfd;
int n;
for (n = 0; n <= 9; n++) {
snprintf(drive, sizeof(drive), "/dev/rcd%dc", n);
if (!cdio_is_device_quiet_generic(drive))
continue;
if ((cdfd = open(drive, O_RDONLY|O_NONBLOCK, 0)) == -1)
continue;
close(cdfd);
cdio_add_device_list(&drives, drive, &num_drives);
}
cdio_add_device_list(&drives, NULL, &num_drives);
return (drives);
}
driver_return_code_t
close_tray_openbsd(const char *psz_device)
{
return (DRIVER_OP_UNSUPPORTED);
}

View File

@ -1,13 +0,0 @@
$OpenBSD: patch-config_h_in,v 1.1 2008/05/01 09:05:12 fgsch Exp $
--- config.h.in.orig Sat Mar 15 17:47:53 2008
+++ config.h.in Wed Apr 30 18:18:25 2008
@@ -139,6 +139,9 @@
/* Define to 1 if you have the <ncurses.h> header file. */
#undef HAVE_NCURSES_H
+/* Define 1 if you have OpenBSD CD-ROM support */
+#undef HAVE_OPENBSD_CDROM
+
/* Define to 1 if you have the <pwd.h> header file. */
#undef HAVE_PWD_H

View File

@ -0,0 +1,18 @@
$OpenBSD: patch-configure,v 1.1 2019/05/12 15:26:07 edd Exp $
Re-enable cdda_player.
Already applied upstream:
http://git.savannah.gnu.org/cgit/libcdio.git/commit/?id=3c1eff03a256ab47bb79f439bfc478664e3fe917
Index: configure
--- configure.orig
+++ configure
@@ -18229,7 +18229,6 @@ $as_echo "#define HAVE_NETBSD_CDROM 1" >>confdefs.h
# LIBS="$LIBS -lcam"
cd_drivers="${cd_drivers}, NetBSD "
- enable_cdda_player="no"
;;
os2*)

View File

@ -1,32 +0,0 @@
$OpenBSD: patch-configure_ac,v 1.2 2011/03/18 23:58:55 sthen Exp $
--- configure.ac.orig Sat Mar 15 13:45:17 2008
+++ configure.ac Wed Sep 22 20:29:10 2010
@@ -460,6 +460,11 @@ int has_timeout=sizeof(test.timeout);],
LIBS="$LIBS -lcam"
cd_drivers="${cd_drivers}, FreeBSD "
;;
+ openbsd*)
+ AC_DEFINE([HAVE_OPENBSD_CDROM], [1],
+ [Define 1 if you have OpenBSD CD-ROM support])
+ cd_drivers="${cd_drivers}, OpenBSD"
+ ;;
*)
AC_MSG_WARN([Don't have OS CD-reading support for ${host_os}...])
AC_MSG_WARN([Will use generic support.])
@@ -490,6 +495,7 @@ AC_SUBST(HAVE_BSDI_CDROM)
AC_SUBST(HAVE_DARWIN_CDROM)
AC_SUBST(HAVE_FREEBSD_CDROM)
AC_SUBST(HAVE_LINUX_CDROM)
+AC_SUBST(HAVE_OPENBSD_CDROM)
AC_SUBST(HAVE_SOLARIS_CDROM)
AC_SUBST(HAVE_WIN32_CDROM)
@@ -562,6 +568,8 @@ if test "${enable_joliet}" != "no" ; then
fi
fi
AC_SUBST(HAVE_JOLIET)
+
+LIBICONV=$LTLIBICONV
if test x$enable_rock = x; then
enable_rock=yes

View File

@ -1,66 +0,0 @@
$OpenBSD: patch-include_cdio_device_h,v 1.1 2008/05/01 09:05:12 fgsch Exp $
--- include/cdio/device.h.orig Wed Apr 30 17:48:56 2008
+++ include/cdio/device.h Wed Apr 30 17:52:09 2008
@@ -157,6 +157,7 @@ extern "C" {
DRIVER_FREEBSD, /**< FreeBSD driver - includes CAM and ioctl access */
DRIVER_LINUX, /**< GNU/Linux Driver */
DRIVER_SOLARIS, /**< Sun Solaris Driver */
+ DRIVER_OPENBSD, /**< OpenBSD driver */
DRIVER_OSX, /**< Apple OSX Driver */
DRIVER_WIN32, /**< Microsoft Windows Driver. Includes ASPI and
ioctl acces. */
@@ -456,6 +457,9 @@ extern "C" {
/*! True if Sun Solaris driver is available. */
bool cdio_have_solaris (void);
+ /*! True if OpenBSD driver is available. */
+ bool cdio_have_openbsd (void);
+
/*! True if Apple OSX driver is available. */
bool cdio_have_osx (void);
@@ -771,6 +775,44 @@ extern "C" {
*/
char **cdio_get_devices_solaris(void);
+ /*! Set up CD-ROM for reading using the OpenBSD driver. The
+ device_name is the some sort of device name.
+
+ NULL is returned on error or there is no OpenBSD driver.
+
+ In some situations of drivers or OS's we can't find a CD device if
+ there is no media in it and it is possible for this routine to return
+ NULL even though there may be a hardware CD-ROM.
+
+ @see cdio_open_cd, cdio_open
+ */
+ CdIo_t * cdio_open_openbsd (const char *psz_source);
+
+ /*! Set up CD-ROM for reading using the OpenBSD driver. The
+ device_name is the some sort of device name.
+
+ NULL is returned on error or there is no OpenBSD driver.
+
+ @see cdio_open_cd, cdio_open
+ */
+ CdIo_t * cdio_open_am_openbsd (const char *psz_source,
+ const char *psz_access_mode);
+
+ /*! Return a string containing the default device name that the
+ OpenBSD driver would use when none is specified. A scan is made
+ for CD-ROM drives with CDs in them.
+
+ In some situations of drivers or OS's we can't find a CD device if
+ there is no media in it and it is possible for this routine to return
+ NULL even though there may be a hardware CD-ROM.
+ */
+ char * cdio_get_default_device_openbsd(void);
+
+ /*! Return a list of all of the CD-ROM devices that the OpenBSD driver
+ can find.
+ */
+ char **cdio_get_devices_openbsd(void);
+
/*! Set up CD-ROM for reading using the Apple OSX driver. The
device_name is the some sort of device name.

View File

@ -1,38 +0,0 @@
$OpenBSD: patch-lib_driver_Makefile_in,v 1.1 2008/05/01 09:05:13 fgsch Exp $
--- lib/driver/Makefile.in.orig Wed Apr 30 17:43:08 2008
+++ lib/driver/Makefile.in Wed Apr 30 17:44:02 2008
@@ -104,8 +104,8 @@ am__objects_1 = _cdio_generic.lo _cdio_stdio.lo _cdio_
bsdi.lo audio.lo cd_types.lo cdio.lo cdtext.lo device.lo \
disc.lo ds.lo freebsd.lo freebsd_cam.lo freebsd_ioctl.lo \
gnu_linux.lo bincue.lo cdrdao.lo image_common.lo nrg.lo \
- logging.lo mmc.lo aspi32.lo win32_ioctl.lo win32.lo osx.lo \
- read.lo sector.lo solaris.lo track.lo utf8.lo util.lo
+ logging.lo mmc.lo aspi32.lo win32_ioctl.lo win32.lo openbsd.lo \
+ osx.lo read.lo sector.lo solaris.lo track.lo utf8.lo util.lo
am_libcdio_la_OBJECTS = $(am__objects_1)
libcdio_la_OBJECTS = $(am_libcdio_la_OBJECTS)
libcdio_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
@@ -173,6 +173,7 @@ HAVE_FREEBSD_CDROM = @HAVE_FREEBSD_CDROM@
HAVE_JOLIET = @HAVE_JOLIET@
HAVE_LINUX_CDROM = @HAVE_LINUX_CDROM@
HAVE_ROCK = @HAVE_ROCK@
+HAVE_OPENBSD_CDROM = @HAVE_OPENBSD_CDROM@
HAVE_SOLARIS_CDROM = @HAVE_SOLARIS_CDROM@
HAVE_WIN32_CDROM = @HAVE_WIN32_CDROM@
HELP2MAN = @HELP2MAN@
@@ -322,6 +323,7 @@ libcdio_sources = \
MSWindows/win32_ioctl.c \
MSWindows/win32.c \
MSWindows/win32.h \
+ openbsd.c \
osx.c \
read.c \
sector.c \
@@ -488,6 +490,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logging.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mmc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nrg.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openbsd.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/osx.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sector.Plo@am__quote@

View File

@ -1,11 +0,0 @@
$OpenBSD: patch-lib_driver_cdio_private_h,v 1.1 2008/05/01 09:05:13 fgsch Exp $
--- lib/driver/cdio_private.h.orig Wed Apr 30 17:55:44 2008
+++ lib/driver/cdio_private.h Wed Apr 30 17:55:58 2008
@@ -469,6 +469,7 @@ extern "C" {
driver_return_code_t close_tray_bsdi (const char *psz_drive);
driver_return_code_t close_tray_freebsd (const char *psz_drive);
driver_return_code_t close_tray_linux (const char *psz_drive);
+ driver_return_code_t close_tray_openbsd (const char *psz_drive);
driver_return_code_t close_tray_osx (const char *psz_drive);
driver_return_code_t close_tray_solaris (const char *psz_drive);
driver_return_code_t close_tray_win32 (const char *psz_drive);

View File

@ -1,40 +0,0 @@
$OpenBSD: patch-lib_driver_device_c,v 1.1 2008/05/01 09:05:13 fgsch Exp $
--- lib/driver/device.c.orig Wed Apr 30 17:44:39 2008
+++ lib/driver/device.c Wed Apr 30 17:46:40 2008
@@ -66,6 +66,8 @@ const driver_id_t cdio_os_driver = DRIVER_BSDI;
const driver_id_t cdio_os_driver = DRIVER_FREEBSD;
#elif HAVE_LINUX_CDROM
const driver_id_t cdio_os_driver = DRIVER_LINUX;
+#elif HAVE_OPENBSD_CDROM
+const driver_id_t cdio_os_driver = DRIVER_OPENBSD;
#elif HAVE_DARWIN_CDROM
const driver_id_t cdio_os_driver = DRIVER_OSX;
#elif HAVE_DARWIN_SOLARIS
@@ -175,6 +177,19 @@ CdIo_driver_t CdIo_all_drivers[CDIO_MAX_DRIVER+1] = {
&close_tray_solaris
},
+ {DRIVER_OPENBSD,
+ CDIO_SRC_IS_DEVICE_MASK|CDIO_SRC_IS_NATIVE_MASK|CDIO_SRC_IS_SCSI_MASK,
+ "OpenBSD",
+ "OpenBSD driver",
+ &cdio_have_openbsd,
+ &cdio_open_openbsd,
+ &cdio_open_am_openbsd,
+ &cdio_get_default_device_openbsd,
+ &cdio_is_device_generic,
+ &cdio_get_devices_openbsd,
+ &close_tray_openbsd
+ },
+
{DRIVER_OSX,
CDIO_SRC_IS_DEVICE_MASK|CDIO_SRC_IS_NATIVE_MASK|CDIO_SRC_IS_SCSI_MASK,
"OS X",
@@ -925,6 +940,7 @@ cdio_open_am (const char *psz_orig_source, driver_id_t
case DRIVER_LINUX:
case DRIVER_SOLARIS:
case DRIVER_WIN32:
+ case DRIVER_OPENBSD:
case DRIVER_OSX:
case DRIVER_NRG:
case DRIVER_BINCUE:

View File

@ -1,7 +1,6 @@
@comment $OpenBSD: PLIST,v 1.4 2015/03/16 18:07:35 naddy Exp $
@comment $OpenBSD: PLIST,v 1.5 2019/05/12 15:26:07 edd Exp $
@bin bin/cd-drive
@bin bin/cd-info
@bin bin/cd-paranoia
@bin bin/cd-read
@bin bin/cdda-player
@bin bin/iso-info
@ -23,7 +22,6 @@ include/cdio/audio.h
include/cdio/bytesex.h
include/cdio/bytesex_asm.h
include/cdio/cd_types.h
include/cdio/cdda.h
include/cdio/cdio.h
include/cdio/cdio_config.h
include/cdio/cdtext.h
@ -34,8 +32,12 @@ include/cdio/dvd.h
include/cdio/ecma_167.h
include/cdio/iso9660.h
include/cdio/logging.h
include/cdio/memory.h
include/cdio/mmc.h
include/cdio/paranoia.h
include/cdio/mmc_cmds.h
include/cdio/mmc_hl_cmds.h
include/cdio/mmc_ll_cmds.h
include/cdio/mmc_util.h
include/cdio/posix.h
include/cdio/read.h
include/cdio/rock.h
@ -56,12 +58,6 @@ lib/libcdio++.la
lib/libcdio.a
lib/libcdio.la
@lib lib/libcdio.so.${LIBcdio_VERSION}
lib/libcdio_cdda.a
lib/libcdio_cdda.la
@lib lib/libcdio_cdda.so.${LIBcdio_cdda_VERSION}
lib/libcdio_paranoia.a
lib/libcdio_paranoia.la
@lib lib/libcdio_paranoia.so.${LIBcdio_paranoia_VERSION}
lib/libiso9660++.a
lib/libiso9660++.la
@lib lib/libiso9660++.so.${LIBiso9660++_VERSION}
@ -73,17 +69,11 @@ lib/libudf.la
@lib lib/libudf.so.${LIBudf_VERSION}
lib/pkgconfig/libcdio++.pc
lib/pkgconfig/libcdio.pc
lib/pkgconfig/libcdio_cdda.pc
lib/pkgconfig/libcdio_paranoia.pc
lib/pkgconfig/libiso9660++.pc
lib/pkgconfig/libiso9660.pc
lib/pkgconfig/libudf.pc
man/jp/
man/jp/man1/
@man man/jp/man1/cd-paranoia.1
@man man/man1/cd-drive.1
@man man/man1/cd-info.1
@man man/man1/cd-paranoia.1
@man man/man1/cd-read.1
@man man/man1/iso-info.1
@man man/man1/iso-read.1

View File

@ -1,8 +1,9 @@
# $OpenBSD: Makefile,v 1.119 2019/04/24 16:26:54 sthen Exp $
# $OpenBSD: Makefile,v 1.120 2019/05/12 15:26:07 edd Exp $
BROKEN-hppa = no atomic ops
COMMENT = Music Player Daemon
VER = 0.20.23
REVISION = 0
DISTNAME = mpd-${VER}
CATEGORIES = audio
HOMEPAGE = https://www.musicpd.org/
@ -29,6 +30,7 @@ LIB_DEPENDS = audio/faad>=2.6.1p0 \
audio/flac \
audio/lame \
audio/libcdio \
audio/libcdio-paranoia \
audio/libid3tag \
audio/libmikmod \
audio/libmpdclient \

View File

@ -1,10 +1,9 @@
# $OpenBSD: Makefile,v 1.20 2017/11/21 00:13:01 naddy Exp $
# $OpenBSD: Makefile,v 1.21 2019/05/12 15:26:07 edd Exp $
COMMENT= (S)VCD authoring software
DISTNAME= vcdimager-0.7.24
DISTNAME= vcdimager-2.0.1
CATEGORIES= graphics multimedia
REVISION= 0
SHARED_LIBS += vcdinfo 0.0 # 2.0

View File

@ -1,2 +1,2 @@
SHA256 (vcdimager-0.7.24.tar.gz) = B116ZzU/8wBHRdp4FDVpi2vEoFODjQ1KPOBRbX2XRpQ=
SIZE (vcdimager-0.7.24.tar.gz) = 1066815
SHA256 (vcdimager-2.0.1.tar.gz) = Z1Ff77mCnQVL6uQPPoQDCb5gzafWh1PK/dUmcndY9no=
SIZE (vcdimager-2.0.1.tar.gz) = 1115207

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.46 2019/02/25 22:43:46 sthen Exp $
# $OpenBSD: Makefile,v 1.47 2019/05/12 15:26:07 edd Exp $
COMMENT = movie player based on MPlayer/mplayer2
@ -6,6 +6,8 @@ GH_ACCOUNT = mpv-player
GH_PROJECT = mpv
GH_TAGNAME = v0.29.1
REVISION = 0
CATEGORIES = multimedia x11
HOMEPAGE = https://mpv.io/
@ -34,6 +36,7 @@ BUILD_DEPENDS = audio/ladspa \
textproc/py-docutils
LIB_DEPENDS = audio/libcdio \
audio/libcdio-paranoia \
converters/libiconv \
devel/libdvdread \
devel/sdl2 \