Hi Elaine,
On Mon, 2008-09-01 at 14:09 +0800, Elaine Xiong wrote:
> #
> # spec file for package SFEcheese
s/SFE/SUNW/
> # owner:elaine date:2008-09-01 type:RFE bugster:6657549
> Patch1: cheese-01-lack-hal-backend.diff
>
> # owner:elaine date:2008-09-01 type:RFE bugster:6743364
> Patch2: cheese-02-lack-uvc-framerate.diff
The correct keyword is "feature" not "RFE"
> %if %option_with_fox
> Requires: FSWxorg-clientlibs
> Requires: FSWxwrtl
> BuildRequires: FSWxorg-headers
> %else
> Requires: SUNWxwrtl
> %endif
This shouldn't be needed anymore, it can depend on SUNWxwrtl
> %package root
> Summary: %{summary} - / filesystem
> SUNW_BaseDir: /
> %include default-depend.inc
Either -root should Require %name or %name should require
%{name}-root.
> export CFLAGS="%optflags -mt `pkg-config --cflags gtk+-2.0`
> `pkg-config --cflags libglade-2.0` `pkg-config --cflags dbus-1`
> `pkg-config --cflags gnome-vfs-2.0` `pkg-config --cflags
> libgnomeui-2.0` `pkg-config --cflags gstreamer-0.10` `pkg-config
> --cflags libebook-1.2`"
This is a big unusual, the configure script usually does this
for you. Why do you need to add these to CFLAGS?
> %if %option_with_gnu_iconv
> export CFLAGS="$CFLAGS -I/usr/gnu/include -L/usr/gnu/lib
> -R/usr/gnu/lib -lintl"
> %endif
This isn't needed anymore.
> export LDFLAGS="%{_ldflags} -lc -mt -lpthread `pkg-config --libs gtk
> +-2.0` `pkg-config --libs libglade-2.0` `pkg-config --libs dbus-1`
> `pkg-config --libs gnome-vfs-2.0` `pkg-config --libs libgnomeui-2.0`
> `pkg-config --libs gstreamer-0.10` -lgstinterfaces-0.10 `pkg-config
> --libs libebook-1.2` -lXxf86vm"
Same comments as for CFLAGS.
> CFLAGS="$CFLAGS" ./configure --prefix=%{_prefix} --mandir=%{_mandir} \
Since CFLAGS is exported, you don't need to repeat CFLAGS="$CFLAGS"
here.
> %post
> ( echo 'test -x /usr/bin/update-desktop-database || exit 0';
> echo '/usr/bin/update-desktop-database'
> ) | $BASEDIR/lib/postrun -b -u -c JDS_wait
> ( echo 'test -x %{_bindir}/update-mime-database || exit 0';
> echo '%{_bindir}/update-mime-database %{_datadir}/mime'
> ) | $BASEDIR/lib/postrun -b -u -c JDS_wait
> ( echo 'test -x /usr/bin/scrollkeeper-update || exit 0';
> echo '/usr/bin/scrollkeeper-update'
> ) | $BASEDIR/lib/postrun -b -u -c JDS
Please use %include for these.
> %postun
> ( echo 'test -x /usr/bin/update-desktop-database || exit 0';
> echo '/usr/bin/update-desktop-database'
> ) | $BASEDIR/lib/postrun -b -u -c JDS_wait
> ( echo 'test -x %{_bindir}/update-mime-database || exit 0';
> echo '%{_bindir}/update-mime-database %{_datadir}/mime'
> ) | $BASEDIR/lib/postrun -b -u -c JDS_wait
> ( echo 'test -x /usr/bin/scrollkeeper-update || exit 0';
> echo '/usr/bin/scrollkeeper-update'
> ) | $BASEDIR/lib/postrun -b -u -c JDS
and these.
>
>
>
>
>
> differences
> between files
> attachment
> (cheese-01-lack-hal-backend.diff)
>
> --- ./src/cheese-webcam.c.orig 2008-08-19 02:32:53.000000000 +0800
> +++ ./src/cheese-webcam.c 2008-09-01 11:14:34.730782000 +0800
> @@ -241,6 +241,10 @@
> * refers to a fake device so that resolution
> changing still
> * works even if the computer doesn't have a
> webcam. */
> char **udis;
> +#ifdef SOLARIS
> + char *dev_name;
> + struct stat s;
> +#endif
> DBusError error;
> LibHalContext *hal_ctx;
>
> @@ -287,6 +291,19 @@
> if (num_udis > 0)
> priv->num_webcam_devices = num_devices = num_udis;
> else
> +#ifdef SOLARIS
> + for (i = 0;;i++)
> + {
> + dev_name = g_strdup_printf("%s%d", "/dev/video", i);
> + if (lstat(dev_name, &s) != 0)
> + break;
> + else
> + priv->num_webcam_devices = num_devices = num_udis = 1;
> + }
> + if (num_udis >= 1 && i > 0)
> + dev_name = g_strdup_printf("%s%d", "/dev/video", --i);
> + else
> +#endif
> {
> num_devices = 1;
> priv->num_webcam_devices = num_udis; /* We don't have any real
> cameras--
> @@ -304,6 +321,7 @@
>
> for (i = 0; i < priv->num_webcam_devices; i++)
> {
> +#ifndef SOLARIS
> char *device;
>
> device = libhal_device_get_property_string (hal_ctx, udis[i],
> "video4linux.device", &error);
> @@ -315,8 +333,14 @@
> }
> priv->webcam_devices[i].video_device = g_strdup (device);
> libhal_free_string (device);
> +#else
> + priv->webcam_devices[i].video_device = g_strdup (dev_name);
> +#endif
> }
> libhal_free_string_array (udis);
> +#ifdef SOLARIS
> + libhal_free_string(dev_name);
> +#endif
> }
>
> static void
> --- ./configure.orig 2008-08-19 02:33:17.000000000 +0800
> +++ ./configure 2008-09-01 11:14:34.739745000 +0800
> @@ -15249,7 +15249,7 @@
> GNOME_VFS_REQUIRED=2.18.0
> LIBEBOOK_REQUIRED=1.12.0
> DBUS_REQUIRED=1.0
> -HAL_REQUIRED=0.5.9
> +HAL_REQUIRED=0.5.8
> DBUS_GLIB_REQUIRED=0.7
> LIBRSVG_REQUIRED=2.18.0
> PANGOCAIRO_REQUIRED=1.18.0
Please patch configure.in or configure.ac and call autoconf
in %build.
> --- ./configure.orig 2008-09-01 11:16:01.925112000 +0800
> +++ ./configure 2008-09-01 11:17:06.006368000 +0800
> @@ -9350,6 +9350,7 @@
> solaris*)
> lt_prog_compiler_pic='-KPIC'
> lt_prog_compiler_static='-Bstatic'
> + CFLAGS="${CFLAGS} -DSOLARIS"
> case $cc_basename in
> f77* | f90* | f95*)
> lt_prog_compiler_wl='-Qoption ld ';;
> @@ -12722,7 +12723,7 @@
>
>
>
> -CFLAGS="${CFLAGS} -Wall"
> +CFLAGS="${CFLAGS}"
Same here, please patch configure.in/ac
>
> --- ./configure.orig 2008-09-01 11:16:01.925112000 +0800
> +++ ./configure 2008-09-01 11:17:06.006368000 +0800
> @@ -13221,7 +13222,7 @@
> xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
> mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
> mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
> -if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
> +if test -z "$xgversion" -o -z "$mmversion"; then
> { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found;
> required for intltool" >&5
> $as_echo "$as_me: error: GNU gettext tools not found; required for
> intltool" >&2;}
> { (exit 1); exit 1; }; }
And here too.
Laca