Re: porting libburnia to kfreebsd
Hi,
Petr Salinger:
> Update of acinclude.m4, libburn/os.h, libburn/sg.c
> will be needed at least.
George initially proposed me to use macro
__FreeBSD_kernel__
for system detection.
This text snippet brought me to
http://glibc-bsd.alioth.debian.org/porting/PORTING
where i read this
Example of triplet check: freebsd* | kfreebsd*-gnu)
Example of C macro check: defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
So i implemented now:
----------------
In acinclude.m4:
kfreebsd*-gnu)
ARCH=freebsd
LIBBURN_ARCH_LIBS=-lcam
;;
----------------
In libburn/os.h:
#ifdef __FreeBSD_kernel__
#include "os-freebsd.h"
----------------
In libburn/sg.c:
#ifdef __FreeBSD_kernel__
#include "sg-freebsd.c"
------------------------------------------------
Above changes are committed to SVN
http://svn.libburnia-project.org/libburn/trunk
and there is also a fresh cdrskin development
tarball containing the same sources
http://scdbackup.sourceforge.net/cdrskin-0.7.5.tar.gz
------------------------------------------------
> Please tell me the detailed recipe for testing.
Test proposal:
If the source was obtained from SVN, then do
./bootstrap
For both SVN and tarball do
./configure
make
Then try whether the cdrecord emulator starts up:
cdrskin/cdrskin -version
It should reply
cdrskin 0.7.5 : limited cdrecord compatibility wrapper for libburn
Cdrecord 2.01-Emulation Copyright (C) 2006-2009, see libburnia-project.org
System adapter : internal FreeBSD CAM adapter sg-freebsd
libburn interface : 0.7.5
libburn in use : 0.7.5
cdrskin version : 0.7.5
Version timestamp : 2009.12.29.132537
Build timestamp : -none-given-
The SVN version timestamp may show a newer date
and time. The tarball has: 2009.12.29.134637.
The following would indicate that the FreeBSD
adapter did _not_ come into effect:
System adapter : internal X/Open adapter sg-dummy
The Debian build demon compiles it on kfreebsd
and hurd currently. No CD drives would be
reachable, then.
One may do
make install
or run
cdrskin/cdrskin
in the build location. I assume the latter.
I have never run libburn on FreeBSD myself.
The following command should list all drives to
which you have rw-permission. Maybe it lists
others too:
cdrskin/cdrskin --devices
On Linux i get something like
...
cdrskin: Overview of accessible drives (5 found) :
-------------------------------------------------------------------
0 dev='/dev/sr0' rwrw-- : 'TSSTcorp' 'CDDVDW SH-S203B'
1 dev='/dev/sr1' rwrw-- : 'HL-DT-ST' 'BD-RE GGW-H20L'
2 dev='/dev/sr2' rwrwrw : 'HL-DT-ST' 'BDDVDRW GGC-H20L'
3 dev='/dev/hda' rwrw-- : 'HL-DT-ST' 'DVD-ROM GDR8162B'
4 dev='/dev/hdc' rwrw-- : 'LITE-ON ' 'LTR-48125S'
-------------------------------------------------------------------
If you get to see devices and if you have
rw-permission, you should be able to eject and
load the drive tray:
cdrskin/cdrskin dev=/dev/sr2 -eject
sleep 5
cdrskin/cdrskin dev=/dev/sr2 -load
If this works then it should be possible to use
cdrskin for burning CD, DVD and BD media. See
man cdrskin/cdrskin.1
especially section EXAMPLES.
They should all work with the appropriate media
types.
To get a list of cdrecord compatible options:
cdrskin/cdrskin -help
For a list of cdrskin specialties use "--help"
with double dash
cdrskin/cdrskin --help
If you have GUI frontends or scripts which use
cdrecord then it would be interesting whether
they can be tricked into using cdrskin and
whether cdrskin suffices for them.
It offers growisofs-like DVD capabilities in
the skin of cdrecord. That might give old scripts
new potential.
Linux linkers of libburn are:
xfburn, Brasero (libburn optional), xorriso.
The latter belongs to the libburnia project.
It depends further on our libisofs and libisoburn
which should both be quite portable.
It is a command line tool to produce and burn
ISO 9660 images.
("x" stands for X/Open, not for X Window System.)
------------------------------------------------
Have a nice day :)
Thomas
Reply to: