diff mbox series

pixman: drop submodule

Message ID 20170901105023.11108-1-kraxel@redhat.com
State New
Headers show
Series pixman: drop submodule | expand

Commit Message

Gerd Hoffmann Sept. 1, 2017, 10:50 a.m. UTC
Drop pixman submodule and support for the "internal" pixman build.
pixman should be reasonable well established meanwhile that we don't
need the fallback submodule any more.  While being at it also drop
some #ifdefs for pixman versions olter than what we require in
configure anyway.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 configure        | 20 ++------------------
 Makefile         | 10 ----------
 ui/qemu-pixman.c |  4 ----
 .gitmodules      |  3 ---
 pixman           |  1 -
 5 files changed, 2 insertions(+), 36 deletions(-)
 delete mode 160000 pixman

Comments

Fam Zheng Sept. 1, 2017, 3:26 p.m. UTC | #1
On Fri, 09/01 12:50, Gerd Hoffmann wrote:
> Drop pixman submodule and support for the "internal" pixman build.
> pixman should be reasonable well established meanwhile that we don't
> need the fallback submodule any more.  While being at it also drop
> some #ifdefs for pixman versions olter than what we require in

s/olter/older/ ?

> configure anyway.

Fam
Alistair Francis Sept. 1, 2017, 10:13 p.m. UTC | #2
'On Fri, Sep 1, 2017 at 3:50 AM, Gerd Hoffmann <kraxel@redhat.com> wrote:
> Drop pixman submodule and support for the "internal" pixman build.
> pixman should be reasonable well established meanwhile that we don't

s/reasonable/reasonably/g
s/meanwhile/meaning/g

> need the fallback submodule any more.  While being at it also drop

s/While being at/While at/g

> some #ifdefs for pixman versions olter than what we require in
> configure anyway.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  configure        | 20 ++------------------
>  Makefile         | 10 ----------
>  ui/qemu-pixman.c |  4 ----
>  .gitmodules      |  3 ---
>  pixman           |  1 -
>  5 files changed, 2 insertions(+), 36 deletions(-)
>  delete mode 160000 pixman
>
> diff --git a/configure b/configure
> index dd73cce62f..73760430b0 100755
> --- a/configure
> +++ b/configure
> @@ -930,8 +930,6 @@ for opt do
>    ;;
>    --with-system-pixman) pixman="system"

Is there any use case for '--with-system-pixman now?

Overall I think this is fine, Pixman does seem to be pretty common. I
verified that RHEL7 has a new enough version, not sure about RHEL6
though.

Thanks,
Alistair

>    ;;
> -  --without-system-pixman) pixman="internal"
> -  ;;
>    --without-pixman) pixman="none"
>    ;;
>    --disable-sdl) sdl="no"
> @@ -3305,8 +3303,6 @@ if test "$pixman" = ""; then
>      pixman="none"
>    elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then
>      pixman="system"
> -  else
> -    pixman="internal"
>    fi
>  fi
>  if test "$pixman" = "none"; then
> @@ -3323,16 +3319,8 @@ elif test "$pixman" = "system"; then
>    pixman_cflags=$($pkg_config --cflags pixman-1)
>    pixman_libs=$($pkg_config --libs pixman-1)
>  else
> -  if test ! -d ${source_path}/pixman/pixman; then
> -    error_exit "pixman >= 0.21.8 not present. Your options:" \
> -        "  (1) Preferred: Install the pixman devel package (any recent" \
> -        "      distro should have packages as Xorg needs pixman too)." \
> -        "  (2) Fetch the pixman submodule, using:" \
> -        "      git submodule update --init pixman"
> -  fi
> -  mkdir -p pixman/pixman
> -  pixman_cflags="-I\$(SRC_PATH)/pixman/pixman -I\$(BUILD_DIR)/pixman/pixman"
> -  pixman_libs="-L\$(BUILD_DIR)/pixman/pixman/.libs -lpixman-1"
> +  error_exit "pixman >= 0.21.8 not present." \
> +      "Please install the pixman devel package."
>  fi
>
>  ##########################################
> @@ -6527,10 +6515,6 @@ echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
>
>  done # for target in $targets
>
> -if [ "$pixman" = "internal" ]; then
> -  echo "config-host.h: subdir-pixman" >> $config_host_mak
> -fi
> -
>  if [ "$dtc_internal" = "yes" ]; then
>    echo "config-host.h: subdir-dtc" >> $config_host_mak
>  fi
> diff --git a/Makefile b/Makefile
> index 81447b1f08..280af66628 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -325,15 +325,6 @@ $(SOFTMMU_SUBDIR_RULES): config-all-devices.mak
>  subdir-%:
>         $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,)
>
> -subdir-pixman: pixman/Makefile
> -       $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pixman V="$(V)" all,)
> -
> -pixman/Makefile: $(SRC_PATH)/pixman/configure
> -       (cd pixman; CFLAGS="$(CFLAGS) -fPIC $(extra_cflags) $(extra_ldflags)" $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-gtk --disable-shared --enable-static)
> -
> -$(SRC_PATH)/pixman/configure:
> -       (cd $(SRC_PATH)/pixman; autoreconf -v --install)
> -
>  DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt
>  DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS)
>  DTC_CPPFLAGS=-I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt
> @@ -532,7 +523,6 @@ distclean: clean
>         rm -rf $$d || exit 1 ; \
>          done
>         rm -Rf .sdk
> -       if test -f pixman/config.log; then $(MAKE) -C pixman distclean; fi
>         if test -f dtc/version_gen.h; then $(MAKE) $(DTC_MAKE_ARGS) clean; fi
>
>  KEYMAPS=da     en-gb  et  fr     fr-ch  is  lt  modifiers  no  pt-br  sv \
> diff --git a/ui/qemu-pixman.c b/ui/qemu-pixman.c
> index 6e8b83add6..6e591ab821 100644
> --- a/ui/qemu-pixman.c
> +++ b/ui/qemu-pixman.c
> @@ -96,17 +96,13 @@ int qemu_pixman_get_type(int rshift, int gshift, int bshift)
>          if (bshift == 0) {
>              type = PIXMAN_TYPE_ARGB;
>          } else {
> -#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0, 21, 8)
>              type = PIXMAN_TYPE_RGBA;
> -#endif
>          }
>      } else if (rshift < gshift && gshift < bshift) {
>          if (rshift == 0) {
>              type = PIXMAN_TYPE_ABGR;
>          } else {
> -#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0, 16, 0)
>              type = PIXMAN_TYPE_BGRA;
> -#endif
>          }
>      }
>      return type;
> diff --git a/.gitmodules b/.gitmodules
> index 5b0c212622..84c54cdc49 100644
> --- a/.gitmodules
> +++ b/.gitmodules
> @@ -22,9 +22,6 @@
>  [submodule "roms/sgabios"]
>         path = roms/sgabios
>         url = git://git.qemu-project.org/sgabios.git
> -[submodule "pixman"]
> -       path = pixman
> -       url = git://anongit.freedesktop.org/pixman
>  [submodule "dtc"]
>         path = dtc
>         url = git://git.qemu-project.org/dtc.git
> diff --git a/pixman b/pixman
> deleted file mode 160000
> index 87eea99e44..0000000000
> --- a/pixman
> +++ /dev/null
> @@ -1 +0,0 @@
> -Subproject commit 87eea99e443b389c978cf37efc52788bf03a0ee0
> --
> 2.9.3
>
>
Eric Blake Sept. 1, 2017, 10:17 p.m. UTC | #3
On 09/01/2017 05:13 PM, Alistair Francis wrote:
> 'On Fri, Sep 1, 2017 at 3:50 AM, Gerd Hoffmann <kraxel@redhat.com> wrote:
>> Drop pixman submodule and support for the "internal" pixman build.
>> pixman should be reasonable well established meanwhile that we don't
> 
> 
> Is there any use case for '--with-system-pixman now?
> 
> Overall I think this is fine, Pixman does seem to be pretty common. I
> verified that RHEL7 has a new enough version, not sure about RHEL6
> though.

pixman-devel-0.32.8-1.el6.x86_64
Alistair Francis Sept. 1, 2017, 10:33 p.m. UTC | #4
On Fri, Sep 1, 2017 at 3:17 PM, Eric Blake <eblake@redhat.com> wrote:
> On 09/01/2017 05:13 PM, Alistair Francis wrote:
>> 'On Fri, Sep 1, 2017 at 3:50 AM, Gerd Hoffmann <kraxel@redhat.com> wrote:
>>> Drop pixman submodule and support for the "internal" pixman build.
>>> pixman should be reasonable well established meanwhile that we don't
>>
>>
>> Is there any use case for '--with-system-pixman now?
>>
>> Overall I think this is fine, Pixman does seem to be pretty common. I
>> verified that RHEL7 has a new enough version, not sure about RHEL6
>> though.
>
> pixman-devel-0.32.8-1.el6.x86_64

Great! In which case having a version of pixman available seems reasonable.

Thanks,
Alistair

>
> --
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.           +1-919-301-3266
> Virtualization:  qemu.org | libvirt.org
>
Gerd Hoffmann Sept. 4, 2017, 6:31 a.m. UTC | #5
Hi,

> > diff --git a/configure b/configure
> > index dd73cce62f..73760430b0 100755
> > --- a/configure
> > +++ b/configure
> > @@ -930,8 +930,6 @@ for opt do
> >    ;;
> >    --with-system-pixman) pixman="system"
> 
> Is there any use case for '--with-system-pixman now?

There is "--without-pixman" (so you can turn off pixman if you don't
want build the system emulation).  So IMHO it makes sense to leave the
opposite switch in.  The name is a bit strange now, but changing it
might break build scripts, so I left it as-is.  Maybe configure should
accept both "--with-pixman" and "--with-system-pixman"?

cheers,
  Gerd
Peter Maydell Sept. 5, 2017, 1:10 p.m. UTC | #6
On 4 September 2017 at 07:31, Gerd Hoffmann <kraxel@redhat.com> wrote:
>   Hi,
>
>> > diff --git a/configure b/configure
>> > index dd73cce62f..73760430b0 100755
>> > --- a/configure
>> > +++ b/configure
>> > @@ -930,8 +930,6 @@ for opt do
>> >    ;;
>> >    --with-system-pixman) pixman="system"
>>
>> Is there any use case for '--with-system-pixman now?
>
> There is "--without-pixman" (so you can turn off pixman if you don't
> want build the system emulation).  So IMHO it makes sense to leave the
> opposite switch in.  The name is a bit strange now, but changing it
> might break build scripts, so I left it as-is.  Maybe configure should
> accept both "--with-pixman" and "--with-system-pixman"?

There's an argument that we don't need any configure options
for pixman any more:
 * if you're not building the system emulation then we can
   just automatically skip the pixman check
 * if you are building the system emulation then we need a
   pixman and have to complain if it doesn't exist

The usual reason for a --with-foo is for the "if foo doesn't
exist then we can still build but with some feature disabled",
in which case distros want to be able to say "fail if foo
not present rather than proceeding in degraded mode". That
doesn't apply for pixman. (We don't have a --with-glib flag
either).

This patch passed on all my build-test machines and configs,
which surprised me a bit but is good news as it suggests
that system pixman is present pretty much everywhere :-)

thanks
-- PMM
Konrad Rzeszutek Wilk Sept. 13, 2017, 2:56 p.m. UTC | #7
On Fri, Sep 01, 2017 at 12:50:23PM +0200, Gerd Hoffmann wrote:
> Drop pixman submodule and support for the "internal" pixman build.
> pixman should be reasonable well established meanwhile that we don't
> need the fallback submodule any more.  While being at it also drop
> some #ifdefs for pixman versions olter than what we require in

s/olter/older/
diff mbox series

Patch

diff --git a/configure b/configure
index dd73cce62f..73760430b0 100755
--- a/configure
+++ b/configure
@@ -930,8 +930,6 @@  for opt do
   ;;
   --with-system-pixman) pixman="system"
   ;;
-  --without-system-pixman) pixman="internal"
-  ;;
   --without-pixman) pixman="none"
   ;;
   --disable-sdl) sdl="no"
@@ -3305,8 +3303,6 @@  if test "$pixman" = ""; then
     pixman="none"
   elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then
     pixman="system"
-  else
-    pixman="internal"
   fi
 fi
 if test "$pixman" = "none"; then
@@ -3323,16 +3319,8 @@  elif test "$pixman" = "system"; then
   pixman_cflags=$($pkg_config --cflags pixman-1)
   pixman_libs=$($pkg_config --libs pixman-1)
 else
-  if test ! -d ${source_path}/pixman/pixman; then
-    error_exit "pixman >= 0.21.8 not present. Your options:" \
-        "  (1) Preferred: Install the pixman devel package (any recent" \
-        "      distro should have packages as Xorg needs pixman too)." \
-        "  (2) Fetch the pixman submodule, using:" \
-        "      git submodule update --init pixman"
-  fi
-  mkdir -p pixman/pixman
-  pixman_cflags="-I\$(SRC_PATH)/pixman/pixman -I\$(BUILD_DIR)/pixman/pixman"
-  pixman_libs="-L\$(BUILD_DIR)/pixman/pixman/.libs -lpixman-1"
+  error_exit "pixman >= 0.21.8 not present." \
+      "Please install the pixman devel package."
 fi
 
 ##########################################
@@ -6527,10 +6515,6 @@  echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
 
 done # for target in $targets
 
-if [ "$pixman" = "internal" ]; then
-  echo "config-host.h: subdir-pixman" >> $config_host_mak
-fi
-
 if [ "$dtc_internal" = "yes" ]; then
   echo "config-host.h: subdir-dtc" >> $config_host_mak
 fi
diff --git a/Makefile b/Makefile
index 81447b1f08..280af66628 100644
--- a/Makefile
+++ b/Makefile
@@ -325,15 +325,6 @@  $(SOFTMMU_SUBDIR_RULES): config-all-devices.mak
 subdir-%:
 	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" all,)
 
-subdir-pixman: pixman/Makefile
-	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C pixman V="$(V)" all,)
-
-pixman/Makefile: $(SRC_PATH)/pixman/configure
-	(cd pixman; CFLAGS="$(CFLAGS) -fPIC $(extra_cflags) $(extra_ldflags)" $(SRC_PATH)/pixman/configure $(AUTOCONF_HOST) --disable-gtk --disable-shared --enable-static)
-
-$(SRC_PATH)/pixman/configure:
-	(cd $(SRC_PATH)/pixman; autoreconf -v --install)
-
 DTC_MAKE_ARGS=-I$(SRC_PATH)/dtc VPATH=$(SRC_PATH)/dtc -C dtc V="$(V)" LIBFDT_srcdir=$(SRC_PATH)/dtc/libfdt
 DTC_CFLAGS=$(CFLAGS) $(QEMU_CFLAGS)
 DTC_CPPFLAGS=-I$(BUILD_DIR)/dtc -I$(SRC_PATH)/dtc -I$(SRC_PATH)/dtc/libfdt
@@ -532,7 +523,6 @@  distclean: clean
 	rm -rf $$d || exit 1 ; \
         done
 	rm -Rf .sdk
-	if test -f pixman/config.log; then $(MAKE) -C pixman distclean; fi
 	if test -f dtc/version_gen.h; then $(MAKE) $(DTC_MAKE_ARGS) clean; fi
 
 KEYMAPS=da     en-gb  et  fr     fr-ch  is  lt  modifiers  no  pt-br  sv \
diff --git a/ui/qemu-pixman.c b/ui/qemu-pixman.c
index 6e8b83add6..6e591ab821 100644
--- a/ui/qemu-pixman.c
+++ b/ui/qemu-pixman.c
@@ -96,17 +96,13 @@  int qemu_pixman_get_type(int rshift, int gshift, int bshift)
         if (bshift == 0) {
             type = PIXMAN_TYPE_ARGB;
         } else {
-#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0, 21, 8)
             type = PIXMAN_TYPE_RGBA;
-#endif
         }
     } else if (rshift < gshift && gshift < bshift) {
         if (rshift == 0) {
             type = PIXMAN_TYPE_ABGR;
         } else {
-#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0, 16, 0)
             type = PIXMAN_TYPE_BGRA;
-#endif
         }
     }
     return type;
diff --git a/.gitmodules b/.gitmodules
index 5b0c212622..84c54cdc49 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -22,9 +22,6 @@ 
 [submodule "roms/sgabios"]
 	path = roms/sgabios
 	url = git://git.qemu-project.org/sgabios.git
-[submodule "pixman"]
-	path = pixman
-	url = git://anongit.freedesktop.org/pixman
 [submodule "dtc"]
 	path = dtc
 	url = git://git.qemu-project.org/dtc.git
diff --git a/pixman b/pixman
deleted file mode 160000
index 87eea99e44..0000000000
--- a/pixman
+++ /dev/null
@@ -1 +0,0 @@ 
-Subproject commit 87eea99e443b389c978cf37efc52788bf03a0ee0