[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Помощ при миграция libmpcdec3 -> libmpcdec6
From: |
Yavor Doganov |
Subject: |
Помощ при миграция libmpcdec3 -> libmpcdec6 |
Date: |
Wed, 22 Apr 2009 14:14:21 +0300 |
User-agent: |
Wanderlust/2.15.5 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (Gojō) APEL/10.7 Emacs/22.3 (i486-pc-linux-gnu) MULE/5.0 (SAKAKI) |
В опит да разреша #476381 [1] измъдрих приложената кръпка. Изглежда
обаче в опит да опростя нещата съм оплескал финалния резултат. Това,
което ме притеснява е, че
* Декларирам някои променливи като обикновени, а не като указатели и
съответно извиквам някои функции на libmpcdec с аргумент адреса на
променливата.
* Отварям директно файла с fopen, и изобщо не ползвам специалните
функции за инициализиране на структурата mpc_reader в
CNSFileHandle.m. Доколкото разбирам от кода на библиотеката [2],
`mpc_reader_init_stdio_stream' прави точно това. Смущава ме
коментара в <mpc/reader.h>:
/// This is the structure you must supply to the musepack decoding
/// library to feed it with raw data. Implement the five member
/// functions to provide a functional reader.
typedef struct mpc_reader_t mpc_reader;
...
Защо трябва да ги реализирам наистина? И ако да, как точно?
Cynthiune.app работи с моята кръпка, но не можеш да превърташ песента
напред/назад. Подозирам, че е именно заради това. От друга страна,
възпроизвежда и двата ми примерни файла [3] и [4] (първия създаден от
мен с mpcenc), докато без кръпката и със старата версия на libmpcdec
умира със SIGFPE при [3] -- най-вероятно защото mpcStreamInfo не се
инициализира и се извършва делене на нула при -readDuration. mpc123 и
cmus също отказват да изпълняват този файл.
[1] http://bugs.debian.org/476381
[2] http://svn.musepack.net/libmpc/trunk/
[3] http://fsa-bg.org/~yavorescu/Blockbuster.mpc
[4] http://fsa-bg.org/~yavorescu/unt.mpc
Направил съм доста други промени по пакета -- ако някой има време, бих
се радвал на коментари и по тях. Но по-важен ми е проблема с
приставката за Musepack. Ето дневника с промените:
cynthiune.app (0.9.5-8) unstable; urgency=low
* debian/compat: Set to 7.
* debian/control: Wrap all fields for diff-friendliness.
(Uploaders): Remove Gürkan upon his request, add myself.
(Section): Set to `gnustep' to match the override.
(Build-Depends): Require debhelper >= 7. Drop gnustep-make. Remove
ancient versioned dependencies on libgnustep-gui-dev, libmodplug-dev,
libflac-dev, libaudiofile-dev. Add quilt, imagemagick and libdts-dev.
(Depends): Add ${gnustep:Depends} and ${misc:Depends}.
(Vcs-Arch): New field.
(Standards-Version): Claim compliance to 3.8.1 as of this upload.
* debian/patches/series:
* debian/patches/Bundles-install-dir.patch:
* debian/patches/FLAC-1.2-new-API.patch:
* debian/patches/compilation-errors.patch: New, split existing patches
from the diff.gz.
* debian/patches/link-libs.patch: New, link the framework and all
bundles properly, avoiding undefined symbols and unnecessary
dependencies.
* debian/patches/WindowsMedia-missing-include.patch: New, fixes FTBFS of
the Windows Media bundle.
* debian/patches/compilation-warnings.patch: New.
* debian/patches/kfreebsd-OSS-default.patch: New. Let
-[GeneralPreference _initDefaults] create the default output bundle to
be OSS on GNU/kFreeBSD too; this fixes some unpleasant glitches with
the fallback Esound bundle.
* debian/rules: Include quilt.make and update targets accordingly.
(GNUSTEP_MAKEFILES): Do not define, not needed.
(OPTFLAG, CFLAGS, CCFLAGS): Define conditionally (support for `noopt'
in DEB_BUILD_OPTIONS).
(LDFLAGS): Define to `-Wl,-z,defs -Wl,--as-needed
-Wl,-rpath,/usr/lib/cynthiune.app'.
(d_app): Define for convenience. All uses updated.
(windowsmedia): Reenable the bundle on supported architectures.
Rework the test to be cheaper, using make functions rather than
invoking dpkg -l.
(build-stamp): Pass OPTFLAG, CFLAGS, CCFLAGS, LDFLAGS and
messages=yes to gs_make. Convert the app icon in XPM format; the one
provided in the tarball is low quality.
(clean-patched): Delete the generated icon. Remove `clean' target
from gs_make's arguments; distclean is sufficient.
(install): Install our XPM icon. Replace `dh_clean -k' with
`dh_prep'. Install libCynthiune as a private library; fixes a policy
violation.
(binary-arch): Invoke dh_desktop and gsdh_gnustep. Conditionally move
the Resources to /usr/share. Do not install the the lintian override.
* debian/cynthiune.links: Delete, not needed and not in effect anyway.
* debian/dirs:
* debian/lintian-override: Delete.
* debian/watch: Add.
* debian/Cynthiune.desktop: Correct the Categories field, add the full
path to the TIFF icon as it's not in the standard icon dirs.
* debian/menu: Add longtitle and icon (Closes: #292910).
* debian/preinst: Add, the standard GNUstep FHS_ME_HARDLY script.
Тези промени засега са само в моето хранилище (което е базирано на
официалното в Дебиан). Това би трябвало да сработи, за да изтеглите
кода:
tla register-archive http://fsa-bg.org/~yavorescu/{archives}/address@hidden/
tla get address@hidden/configs--head--1.0 yavor-gnustep
cd yavor-gnustep
tla buildcfg configs/debian/cynthiune.app/latest
cd +packages/cynthiune.app/cynthiune.app-0.9.5
(за да приложите кръпките)
QUILT_PATCHES=debian/patches quilt push -a
(или под Дебиан или дериват)
./debian/rules patch
Благодаря предварително!
Musepack-new-API.patch
Description: Text document
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Помощ при миграция libmpcdec3 -> libmpcdec6,
Yavor Doganov <=