gug-bg-herd
[Top][All Lists]
Advanced

[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

Благодаря предварително!

Attachment: Musepack-new-API.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]