forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: portage-2.2.20.1
- Loading branch information
Showing
2 changed files
with
270 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST cdrtools-3.01a17.tar.bz2 2061522 SHA256 3d613965b213ad83e4be0ba2535e784901839ea4d11a20a2beb6765f0eb76dfa SHA512 34a0579c536028b030cf828441ad55a705472646bc3a1ae962aad234fbe0b12c2bcb670511487c17086f5ba7643d1b8ae42a4a86bfe2940dc94f9744377daa8b WHIRLPOOL b718d559e0b36a576a42a38f84b3917891450d0bbab47b084eb1e906a396cf28ce47b79fd16565d4e0697311ee0c3d5abdd95b52ba2d7ae4e9f32d9b26bc26e1 | ||
DIST cdrtools-3.01a24.tar.bz2 2075400 SHA256 4d9907b84f5b65dc6ca278b6202b90b8eb68652b01aa4dda978ffede8bdd4a5b SHA512 19be30de77fca00bb06fa6325149421304c1d5ff7d40a9d842496058494fcf0e798678c661ff3ae9ebc9e4c5971917f7aabfd813a6d88ff863d7e2e5f1456766 WHIRLPOOL 4533288dffef2b702eeef2a44fd702aff3e66283d5d90c810eb177ee4f1f1aa7cfd75238bf1f2a406e9b8ccaa43c7a77fb401825f8ce806e73fdc80abcc0a45a | ||
DIST cdrtools-3.01a30.tar.bz2 2097525 SHA256 5b9a2f98771c9d0097a1e7640727655ece2864eea95f38e5611af2b2f6e6d9cd SHA512 a78809451e0e2b5ca94d0fc34db24ad002c2a1dd6a2dde0ecd6178a4da92c2974acf399dd8fe5dc246bbc7c32106116e957ce8d3ad20773c5909264346570025 WHIRLPOOL bd11ade4585626531cb3d0a59c88979e2d33ef1e1984611276b0e7d10d12a371bd7e4068c7e65c3d0d65b73002313fd63eb93e953a82cf130459bffa3326ee7c | ||
DIST cdrtools-3.01a31.tar.bz2 2097584 SHA256 183b5c12777779e78d8b69461aae52401f863768e7e7391d60730006f8cadc5a SHA512 455d7f3e1f4bbe79bb53f2fba4a8d5d8737eef8ce477a447d8687282dd2404a93cab07da1141292f8c26dd70963a26901486448db3c6a70a89aad47908fdf81c WHIRLPOOL 7a70464254645a0ce9ffaafbdb14a6ebb53a638310748a22c4a20c904059c92df746997fbd9b07d9a16876917bfd3b8b318acc5cd5494eac5e6b5d0ef66215e9 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,269 @@ | ||
# Copyright 1999-2015 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI=5 | ||
|
||
inherit fcaps multilib eutils toolchain-funcs flag-o-matic gnuconfig | ||
|
||
MY_P="${P/_alpha/a}" | ||
|
||
DESCRIPTION="A set of tools for CD/DVD reading and recording, including cdrecord" | ||
HOMEPAGE="http://sourceforge.net/projects/cdrtools/" | ||
SRC_URI="mirror://sourceforge/${PN}/$([[ -z ${PV/*_alpha*} ]] && echo 'alpha')/${MY_P}.tar.bz2" | ||
|
||
LICENSE="GPL-2 LGPL-2.1 CDDL-Schily" | ||
SLOT="0" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris" | ||
IUSE="acl caps nls unicode" | ||
|
||
RDEPEND="acl? ( virtual/acl ) | ||
caps? ( sys-libs/libcap ) | ||
nls? ( virtual/libintl ) | ||
!app-cdr/cdrkit" | ||
DEPEND="${RDEPEND} | ||
x11-misc/makedepend | ||
nls? ( >=sys-devel/gettext-0.18.1.1 )" | ||
|
||
S=${WORKDIR}/${P/_alpha[0-9][0-9]} | ||
|
||
FILECAPS=( | ||
cap_sys_resource,cap_dac_override,cap_sys_admin,cap_sys_nice,cap_net_bind_service,cap_ipc_lock,cap_sys_rawio+ep usr/bin/cdrecord -- | ||
cap_dac_override,cap_sys_admin,cap_sys_nice,cap_net_bind_service,cap_sys_rawio+ep usr/bin/cdda2wav -- | ||
cap_dac_override,cap_sys_admin,cap_net_bind_service,cap_sys_rawio+ep usr/bin/readcd | ||
) | ||
|
||
cdrtools_os() { | ||
local os="linux" | ||
[[ ${CHOST} == *-darwin* ]] && os="mac-os10" | ||
[[ ${CHOST} == *-freebsd* ]] && os="freebsd" | ||
echo "${os}" | ||
} | ||
|
||
src_prepare() { | ||
gnuconfig_update | ||
|
||
# Remove profiled make files. | ||
find -name '*_p.mk' -delete | ||
|
||
# Adjusting hardcoded paths. | ||
sed -i -e "s|opt/schily|usr|" \ | ||
$(find ./ -type f -name \*.[0-9ch] -exec grep -l 'opt/schily' '{}' '+') \ | ||
|| die "sed opt/schily" | ||
|
||
sed -i -e "s|\(^INSDIR=\t\tshare/doc/\)|\1${PF}/|" \ | ||
$(find ./ -type f -exec grep -l '^INSDIR.\+doc' '{}' '+') \ | ||
|| die "sed doc" | ||
|
||
# Respect libdir. | ||
sed -i -e "s|\(^INSDIR=\t\t\)lib|\1$(get_libdir)|" \ | ||
$(find ./ -type f -exec grep -l '^INSDIR.\+lib\(/siconv\)\?$' '{}' '+') \ | ||
|| die "sed multilib" | ||
|
||
# Do not install static libraries. | ||
sed -i -e "s|include\t\t.*rules.lib||" \ | ||
$(find ./ -type f -exec grep -l '^include.\+rules\.lib' '{}' '+') \ | ||
|| die "sed rules" | ||
|
||
# Enable verbose build. | ||
sed -i -e '/@echo.*==>.*;/s:@echo[^;]*;:&set -x;:' \ | ||
RULES/*.rul RULES/rules.prg RULES/rules.inc \ | ||
|| die "sed verbose rules" | ||
|
||
# Respect CC/CXX variables. | ||
cd "${S}"/RULES | ||
local tcCC=$(tc-getCC) | ||
local tcCXX=$(tc-getCXX) | ||
sed -i -e "/cc-config.sh/s|\$(C_ARCH:%64=%) \$(CCOM_DEF)|${tcCC} ${tcCC}|" \ | ||
rules1.top || die "sed rules1.top" | ||
sed -i -e "/^CC_COM_DEF=/s|gcc|${tcCC}|" \ | ||
-e "/^CC++_COM_DEF=/s|g++|${tcCXX}|" \ | ||
-e "/COPTOPT=/s|-O||" \ | ||
-e 's|$(GCCOPTOPT)||' \ | ||
cc-gcc.rul || die "sed cc-gcc.rul" | ||
sed -i -e "s|^#\(CONFFLAGS +=\).*|\1\t-cc=${tcCC}|" \ | ||
rules.cnf || die "sed rules.cnf" | ||
|
||
# Add support for arm64 | ||
ln -sf i586-linux-cc.rul aarch64-linux-cc.rul | ||
ln -sf i586-linux-gcc.rul aarch64-linux-gcc.rul | ||
|
||
# Schily make setup. | ||
cd "${S}"/DEFAULTS | ||
local os=$(cdrtools_os) | ||
|
||
sed -i \ | ||
-e "s|^\(DEFLINKMODE=\).*|\1\tdynamic|" \ | ||
-e "s|^\(LINUX_INCL_PATH=\).*|\1|" \ | ||
-e "s|^\(LDPATH=\).*|\1|" \ | ||
-e "s|^\(RUNPATH=\).*|\1|" \ | ||
-e "s|^\(INS_BASE=\).*|\1\t${ED}/usr|" \ | ||
-e "s|^\(INS_RBASE=\).*|\1\t${ED}|" \ | ||
-e "s|^\(DEFINSGRP=\).*|\1\t0|" \ | ||
-e '/^DEFUMASK/s,002,022,g' \ | ||
Defaults.${os} || die "sed Schily make setup" | ||
# re DEFUMASK above: | ||
# bug 486680: grsec TPE will block the exec if the directory is | ||
# group-writable. This is painful with cdrtools, because it makes a bunch of | ||
# group-writable directories during build. Change the umask on their | ||
# creation to prevent this. | ||
} | ||
|
||
ac_cv_sizeof() { | ||
cat <<-EOF >"${T}"/test.c | ||
#include <inttypes.h> | ||
#include <stddef.h> | ||
#include <stdint.h> | ||
#include <sys/types.h> | ||
int main () { | ||
static int test_array [1 - 2 * !((sizeof(TYPE)) == LEN)]; | ||
test_array [0] = 0; | ||
return test_array [0]; | ||
} | ||
EOF | ||
|
||
local i=1 | ||
while [[ ${i} -lt 20 ]] ; do | ||
if ${CC} ${CPPFLAGS} ${CFLAGS} -c "${T}"/test.c -o /dev/null -DTYPE="$1" -DLEN=$i 2>/dev/null; then | ||
echo ${i} | ||
return 0 | ||
fi | ||
: $(( i += 1 )) | ||
done | ||
return 1 | ||
} | ||
|
||
src_configure() { | ||
use acl || export ac_cv_header_sys_acl_h="no" | ||
use caps || export ac_cv_lib_cap_cap_get_proc="no" | ||
|
||
# skip obsolete configure script | ||
if tc-is-cross-compiler ; then | ||
# Cache known values for targets. #486680 | ||
|
||
tc-export CC | ||
local var val t types=( | ||
char "short int" int "long int" "long long" | ||
"unsigned char" "unsigned short int" "unsigned int" | ||
"unsigned long int" "unsigned long long" | ||
float double "long double" size_t ssize_t ptrdiff_t | ||
mode_t uid_t gid_t pid_t dev_t time_t wchar_t | ||
"char *" "unsigned char *" | ||
) | ||
for t in "${types[@]}" ; do | ||
var="ac_cv_sizeof_${t// /_}" | ||
var=${var//[*]/p} | ||
val=$(ac_cv_sizeof "${t}") || die "could not compute ${t}" | ||
export "${var}=${val}" | ||
einfo "Computing sizeof(${t}) as ${val}" | ||
done | ||
# We don't have these types. | ||
export ac_cv_sizeof___int64=0 | ||
export ac_cv_sizeof_unsigned___int64=0 | ||
export ac_cv_sizeof_major_t=${ac_cv_sizeof_dev_t} | ||
export ac_cv_sizeof_minor_t=${ac_cv_sizeof_dev_t} | ||
export ac_cv_sizeof_wchar=${ac_cv_sizeof_wchar_t} | ||
|
||
export ac_cv_type_prototypes="yes" | ||
export ac_cv_func_mlock{,all}="yes" | ||
export ac_cv_func_{e,f,g}cvt=$(usex elibc_glibc) | ||
export ac_cv_func_dtoa_r="no" | ||
export ac_cv_func_sys_siglist{,_def}="no" | ||
export ac_cv_func_printf_{j,ll}="yes" | ||
export ac_cv_realloc_null="yes" | ||
export ac_cv_no_user_malloc="no" | ||
export ac_cv_var_timezone="yes" | ||
export ac_cv_var___progname{,_full}="yes" | ||
export ac_cv_fnmatch_igncase="yes" | ||
export ac_cv_file__dev_{fd_{0,1,2},null,std{err,in,out},tty,zero}="yes" | ||
export ac_cv_file__usr_src_linux_include="no" | ||
|
||
case $(cdrtools_os) in | ||
linux) | ||
export ac_cv_func_bsd_{g,s}etpgrp="no" | ||
export ac_cv_hard_symlinks="yes" | ||
export ac_cv_link_nofollow="yes" | ||
export ac_cv_access_e_ok="no" | ||
|
||
export ac_cv_dev_minor_noncontig="yes" | ||
case ${ac_cv_sizeof_long_int} in | ||
4) export ac_cv_dev_minor_bits="32";; | ||
8) export ac_cv_dev_minor_bits="44";; | ||
esac | ||
|
||
cat <<-EOF >"${T}"/test.c | ||
struct { | ||
char start[6]; | ||
unsigned char x1:4; | ||
unsigned char x2:4; | ||
char end[5]; | ||
} a = { | ||
.start = {'S', 't', 'A', 'r', 'T', '_'}, | ||
.x1 = 5, | ||
.x2 = 4, | ||
.end = {'_', 'e', 'N', 'd', 'X'}, | ||
}; | ||
EOF | ||
${CC} ${CPPFLAGS} ${CFLAGS} -c "${T}"/test.c -o "${T}"/test.o | ||
if grep -q 'StArT_E_eNdX' "${T}"/test.o ; then | ||
export ac_cv_c_bitfields_htol="no" | ||
elif grep -q 'StArT_T_eNdX' "${T}"/test.o ; then | ||
export ac_cv_c_bitfields_htol="yes" | ||
fi | ||
;; | ||
esac | ||
fi | ||
} | ||
|
||
src_compile() { | ||
if use unicode; then | ||
local flags="$(test-flags -finput-charset=ISO-8859-1 -fexec-charset=UTF-8)" | ||
if [[ -n ${flags} ]]; then | ||
append-flags ${flags} | ||
else | ||
ewarn "Your compiler does not support the options required to build" | ||
ewarn "cdrtools with unicode in USE. unicode flag will be ignored." | ||
fi | ||
fi | ||
|
||
# If not built with -j1, "sometimes" cdda2wav will not be built. | ||
emake -j1 CPPOPTX="${CPPFLAGS}" COPTX="${CFLAGS}" C++OPTX="${CXXFLAGS}" \ | ||
LDOPTX="${LDFLAGS}" GMAKE_NOWARN="true" | ||
} | ||
|
||
src_install() { | ||
# If not built with -j1, "sometimes" manpages are not installed. | ||
emake -j1 CPPOPTX="${CPPFLAGS}" COPTX="${CFLAGS}" C++OPTX="${CXXFLAGS}" \ | ||
LDOPTX="${LDFLAGS}" GMAKE_NOWARN="true" install | ||
|
||
# These symlinks are for compat with cdrkit. | ||
dosym schily /usr/include/scsilib | ||
dosym ../scg /usr/include/schily/scg | ||
|
||
dodoc ABOUT Changelog* CONTRIBUTING PORTING README.linux-shm READMEs/README.linux | ||
|
||
cd "${S}"/cdda2wav | ||
docinto cdda2wav | ||
dodoc Changelog FAQ Frontends HOWTOUSE NEEDED README THANKS TODO | ||
|
||
cd "${S}"/mkisofs | ||
docinto mkisofs | ||
dodoc ChangeLog* TODO | ||
|
||
# Remove man pages related to the build system | ||
rm -rvf "${ED}"/usr/share/man/man5 | ||
} | ||
|
||
pkg_postinst() { | ||
fcaps_pkg_postinst | ||
|
||
if [[ ${CHOST} == *-darwin* ]] ; then | ||
einfo | ||
einfo "Darwin/OS X use the following device names:" | ||
einfo | ||
einfo "CD burners: (probably) ./cdrecord dev=IOCompactDiscServices" | ||
einfo | ||
einfo "DVD burners: (probably) ./cdrecord dev=IODVDServices" | ||
einfo | ||
fi | ||
} |