[Mageia-dev] bumblebee in mageia (and mentoring)

simple w8 simplew8 at gmail.com
Tue Apr 10 20:53:07 CEST 2012


2012/4/10 simple w8 <simplew8 at gmail.com>:
> 2012/4/10 Anssi Hannula <anssi at mageia.org>:
>> 10.04.2012 07:46, simple w8 kirjoitti:
>>> Currently i dont have any account to be able to comit these new
>>> packages for the distro so i ask if someone can review the specs so
>>> that these packages can start existing in the distro, and i also ask
>>> if theres someone that can help me with mentoring
>>
>> Reviewed below. However, there looks to be quite a lot of work
>> remaining, so I don't think I'll be able to help you personally with the
>> issues. I hope you'll find a mentor who'll help you through.
>>
>>
>>> Name:         libbsd
>>> Summary:      Library providing BSD-compatible functions for portability
>>>[...]
>>> %{_libdir}/libbsd.so.%{major}*
>> [...]
>>> %{_libdir}/libbsd.so
>> [...]
>>
>> We already have libbsd.a from glibc-devel, which would conflict with
>> this. If they are really different libraries, something drastic would
>> have to be done (e.g. renaming or dropping one). I suspect they are the
>> same, though, in which case this isn't needed.
>>
>>> %prep
>>> %setup -q
>>> # fix encoding of flopen.3 man page
>>> for f in src/flopen.3; do
>>>   iconv -f iso8859-1 -t utf-8 $f >$f.conv
>>>   touch -r $f $f.conv
>>>   mv $f.conv $f
>>> done
>>>
>>> %build
>>> %make
>>
>> %optflags not used.
>>
>>> %install
>>> make install DESTDIR=%{buildroot} \
>>
>> %makeinstall_std
>
> Here you really need to spefify them, with %makeinstall_std  fails
>
>>>     libdir=%{_libdir} \
>>>     usrlibdir=%{_libdir} \
>>>     exec_prefix=%{_prefix}
>>>
>> [...]
>>> optidesk.spec
>>>
>>>
>>> Name:           optidesk
>>> Summary:        Tool to configure .desktop files to run with optirun
>>> Group:          Graphical desktop/Other
>>> Version:        0.1
>>> Release:        1
>>> URL:            https://github.com/Bumblebee-Project/optidesk
>>> License:        GPLv3
>>> # source from git repo git://github.com/Bumblebee-Project/optidesk.git
>>> Source0:      %{name}.tar.xz
>>
>> Tarball needs to be versioned.
>
> I did add a comment saying its from git, but i usually use to create a
> macro and put some like this:
>
> Source0:      %{?git:%{name}}%{!?git:%{name}-%{version}}.tar.xz
>
> but still there isnt any version released
>
>
>>> Requires:     bumblebee
>>>
>>> %description
>>> This tool is intended to be an easy way of configuring your desired
>>> applications to be run through Bumblebee. It will allow to create
>>> and modify a menu entry with an alternative (Optirun) version of the
>>> default launcher.
>>>
>>> %files
>>> %{_bindir}/%{name}
>>>
>>>
>>> %prep
>>> %setup -qn %{name}
>>>
>>> %build
>>> autoreconf -fi
>>> %configure
>>
>> %configure2_5x
>
> I also use to use configure2_5X~but here would not make any
> difference, but yes here i didnt put because i missed ateention on
> this line
>
>>> %make
>> [...]
>>> %changelog
>>> * Mon Mar 19 2012 Simple <simplew8 at gmailcom> 3.0-1
>>> - initial package
>>
>> No single-entry changelog needed for imported packages, it will be
>> created from the import commit message. (applies to all .specs)
>
> Even so i do add an entry in changelog for my personall reports.
>
>>>
>>> dkms-bbswitch.spec
>>>
>>>
>>> %define oname bbswitch
>>>
>>> Name:           dkms-%{oname}
>>> Summary:        bbswitch - Optimus GPU power switcher
>>> Group:          System/Kernel and hardware
>>> Version:        0.4.1
>>> Release:        %mkrel 1
>>> License:        GPLv3
>>> URL:            https://github.com/Bumblebee-Project/bbswitch
>>> # source from git repo git://github.com/Bumblebee-Project/bbswitch.git
>>> Source0:        %{oname}.tar.xz
>>
>> Tarball needs to be versioned.
>
> This is from git and already explained that there was no release
>
>>> BuildArch:    noarch
>>> Requires(post):       dkms
>>> Requires(preun):dkms
>>
>> Needs to require dkms.
>
> AFAIK dkms its only used in post and preun scriptlets., so why add
> another plain require?
>
>>>
>>> %description
>>> bbswitch is a kernel module which automatically detects the required
>>> ACPI calls for two kinds of Optimus laptops. It has been verified to
>>> work with "real" Optimus and "legacy" Optimus laptops (at least, that
>>> is how I call them).
>>>
>>> %files
>>> %{_usrsrc}/%{oname}-%{version}/*
>>>
>>> %post
>>> set -x
>>> dkms add -m %{oname} -v %{version} --rpm_safe_upgrade || :
>>> dkms build -m %{oname} -v %{version} --rpm_safe_upgrade || :
>>> dkms install -m %{oname} -v %{version} --rpm_safe_upgrade || :
>>> /sbin/modprobe %{oname} || :
>>>
>>> %preun
>>> dkms remove --binary -m %{oname} -v %{version} --rpm_safe_upgrade --all || :
>>> /sbin/rmmod %{oname} || :
>>>
>>
>> These scripts are a bit incorrect, see
>> https://wiki.mageia.org/en/DKMS_packaging_policy
>> (some || : should be replaced with &&)
>
> Well i dont think its incorrect, bow if mageia prefers to use another
> code its a different issue.
>
>>> %prep
>>> %setup -qn %{oname}
>>> sed -i 's/#MODULE_VERSION#/%{version}/g' dkms/dkms.conf
>>>
>>> %install
>>> rm -rf %{buildroot}
>>> mkdir -p %{buildroot}%{_usrsrc}/%{oname}-%{version}
>>> cp *.c %{buildroot}%{_usrsrc}/%{oname}-%{version}
>>> cp Makefile %{buildroot}%{_usrsrc}/%{oname}-%{version}
>>> cp dkms/dkms.conf %{buildroot}%{_usrsrc}/%{oname}-%{version}/dkms.conf
>>>
>>> %changelog
>>> * Mon Mar 19 2012 Simple <simplew8 at gmail.com> 0.4.1-1
>>> - initial package
>>>
>>>
>>> bumblebee.spec
>>>
>>>
>>> Name:           bumblebee
>>> Summary:        Bumblebee - support for NVidia Optimus laptops on Linux!
>>> Group:          System/Kernel and hardware
>>> Version:        3.0
>>> Release:        1
>>
>> Missing %mkrel.
>
> Yes its a typo that escaped me.
>
>>> URL:            https://github.com/Bumblebee-Project/bumblebee
>>> License:        GPLv3
>>
>> Incorrect license, see license policy:
>> https://wiki.mageia.org/en/Licensing_policy
>>
>> AFAICS should be GPLv3+. I didn't check other packages, they may have
>> wrong tags as well.
>
> I need to read it, i didnt knew about it.
>
>>> # source from git repo git://github.com/Bumblebee-Project/Bumblebee.git
>>> Source0:      Bumblebee.tar.xz
>>
>> Needs to be versioned.
>>
>>> BuildRequires:        X11-devel
>>> BuildRequires:        pkgconfig(glib-2.0)
>>> BuildRequires:        pkgconfig(libbsd)
>>> BuildRequires:        help2man
>>> Requires(pre):        update-alternatives
>>> Requires(post):       systemd-units
>>> Requires(preun):systemd-units
>>> Requires(postun):systemd-units
>>> Requires:     virtualgl
>>> Requires:     x11-driver-video-nvidia-current
>>
>> I thought this worked with nouveau as well?
>
> Well so far the tests i performed always missed with noveau when
> running optirun, Anyway, bumblebee is configured by default to use
> nvidia driver.
>
>>> Requires:     dkms-bbswitch
>>> Requires:     dkms-acpi_call
>>
>> Packages can't require dkms packages directly, see the aforementioned
>> DKMS policy (use kmod() instead). Requiring them directly breaks binary
>> dkms packages.
>
> This one i didnt knew :)
>
>>> %description
>>> Bumblebee daemon is a rewrite of the original Bumblebee service,
>>> providing an elegant and stable means of managing Optimus hybrid
>>> graphics chipsets.
>>> A primary goal of this project is to not only enable use of the
>>> discrete GPU for rendering, but also to enable smart power management
>>> of the dGPU when it's not in use.
>>>
>>> %prep
>>> %setup -qn Bumblebee
>>>
>>> %build
>>> autoreconf -fi
>>> %configure \
>>> CONF_DRIVER=nvidia \
>>> CONF_DRIVER_MODULE_NVIDIA=nvidia-current \
>>> CONF_LDPATH_NVIDIA=/usr/lib/nvidia-current:/usr/lib64/nvidia-current \
>>> CONF_MODPATH_NVIDIA=/usr/lib/nvidia-current/xorg,/usr/lib64/nvidia-current/xorg,/usr/lib/xorg/modules,/usr/lib64/xorg/modules,/usr/lib/xorg/extra-modules,/usr/lib64/xorg/extra-modules
>>
>> Use %{_libdir}, %ifarch and %{_prefix}/lib. 32-bit builds need only
>> %{_libdir}, 64-bit builds (%ifarch x86_64) need both %{_libdir} and
>> %{_prefix}/lib.
>>
>>
>>> %make
>>>
>>> %install
>>> rm -rf %{buildroot}
>>> %makeinstall_std
>>>
>>> install -m644 -D scripts/systemd/bumblebeed.service %{buildroot}%{_sysconfdir}/systemd/system/bumblebeed.service
>>> install -m644 -D scripts/sysvinit/bumblebeed %{buildroot}%{_initrddir}/%{name}/bumblebeed
>>>
>>> %files
>>> %doc README.markdown doc/RELEASE_NOTES_3_0
>>> %config(noreplace) %{_sysconfdir}/bash_completion.d/bumblebee
>>
>> This shouldn't be %config.
>>
>>> %dir %{_sysconfdir}/bumblebee/
>>> %config(noreplace) %{_sysconfdir}/bumblebee/bumblebee.conf
>>> %config(noreplace) %{_sysconfdir}/bumblebee/xorg.conf.nouveau
>>> %config(noreplace) %{_sysconfdir}/bumblebee/xorg.conf.nvidia
>>> %{_sysconfdir}/systemd/system/bumblebeed.service
>>> %{_initrddir}/%{name}/
>>
>> Extra '/'?
>
> This one was a typo.
>
>>> %{_sbindir}/bumblebeed
>>> %{_bindir}/optirun
>>> %{_bindir}/bumblebee-bugreport
>>> %{_mandir}/man1/bumblebeed.1*
>>> %{_mandir}/man1/optirun.1*
>>>
>>> %pre
>>> %_pre_groupadd %{name}
>>> if [ "$1" -eq "1" ];then
>>>   /usr/sbin/update-alternatives --set gl_conf %{_sysconfdir}/ld.so.conf.d/GL/standard.conf
>>> fi
>>
>> Forcibly changing configuration in %pre seems quite bad to me, though I
>> do not see much better solutions (except making XFdrake aware of
>> bumblebee, which is quite some work).
>
> I did asked you about what would be the best option here and you said
> that --set would be the best choice.
>
>>> %post
>>> %_post_service bumblebeed
>> [...]
>>> if [ $1 -eq 1 ]; then
>>>   # Initial set
>>>   # Enable (but don't start) the unit by default
>>>   /bin/systemctl enable bumblebeed.service
>>> fi
>>
>> I don't think this stuff is needed on Mageia, that is done by default.
>
> Really? I didnt knew about it, is there any page documenting that?
> Im quite curious about how is done :)
>
>>> %preun
>>> %_preun_service bumblebeed
>> [...]
>>> if [ $1 -eq 0 ]; then
>>>   # Package removal, not upgrade
>>>   /bin/systemctl --no-reload disable bumblebeed.service
>>>   /bin/systemctl stop bumblebeed.service
>>> fi
>>
>> That is done by %_preun_service already.
>
> How come?
> ~]$ rpm -E %_preun_service
> /usr/share/rpm-helper/del-service %{name} $1
>
>>> %postun
>>> %_postun_groupdel %{name}
>>
>>> /bin/systemctl daemon-reload
>>
>> Already done by filetriggers.
>>
>>> if [ $1 -ge 1 ]; then
>>>   # Package upgrade, not uninstall
>>>   /bin/systemctl try-restart bumblebeed.service
>>> fi
>>
>> Already done by %_post_service.
>
> I dont get why you said that again when:
>
> ]$ rpm -E %_post_service
> /usr/share/rpm-helper/add-service %{name} $1
>
>>>
>>> %changelog
>>> * Mon Mar 19 2012 Simple <simplew8 at gmailcom> 3.0-1
>>> - 3.0 (from git), initial package
>>>
>>>
>>> bumblebee-ui.spec
>>>
>>>
>>> Name:         bumblebee-ui
>>> Summary:      Bumblebee User Interface
>>> Group:                System/Configuration/Other
>>> Version:      1.0
>>> Release:      %mkrel 1
>>> URL:          https://github.com/Bumblebee-Project/bumblebee-ui
>>> License:      GPLv3
>>> # source from git repo git://github.com/Bumblebee-Project/bumblebee-ui.git
>>> Source0:      %{name}.tar.xz
>>
>> Needs to be versioned.
>>
>>> BuildArch:    noarch
>>> Requires:     bumblebee
>>>
>>> %description
>>> This is a user interface for bumblebee.
>>> A complete explanation of the feature of this user interface are
>>> explained here :
>>>     https://github.com/Bumblebee-Project/bumblebee-ui/wiki
>>> Please give it a try and report bugs to:
>>>     https://github.com/Bumblebee-Project/bumblebee-ui/issues
>>
>> "Please give it a try" is inappropriate in a %description. This should
>> also briefly explain what bumblebee is.
>
> I just copied whats in the bumblebee page
>
>>> %files
>>> %{_sysconfdir}/xdg/autostart/bumblebee-indicator.desktop
>>> %{_bindir}/bumblebee*
>>> %{_datadir}/%{name}/
>>> %{_datadir}/applications/*
>>> %{_iconsdir}/hicolor/*
>>>
>>> %prep
>>> %setup -qn %{name}
>>>
>>> %install
>>> rm -rf %{buildroot}
>>> mkdir -p %{buildroot}%{_iconsdir}/hicolor/48x48/apps/
>>> cp icons/*.* %{buildroot}%{_iconsdir}/hicolor/48x48/apps/
>>> mkdir -p %{buildroot}%{_datadir}/{%{name},applications}
>>> cp app/*.* %{buildroot}%{_datadir}/%{name}
>>> cp bumblebee-app-settings.desktop %{buildroot}%{_datadir}/applications/
>>> cp bumblebee-indicator.desktop %{buildroot}%{_datadir}/applications/
>>> mkdir -p %{buildroot}%{_bindir}
>>> ln -s %{_datadir}/%{name}/AppSettings.py %{buildroot}%{_bindir}/bumblebee-app-settings
>>> ln -s %{_datadir}/%{name}/Bumblebee-Indicator.py %{buildroot}%{_bindir}/bumblebee-indicator
>>>
>>> chmod +x %{buildroot}%{_datadir}/applications/bumblebee-app-settings.desktop
>>> chmod +x %{buildroot}%{_datadir}/applications/bumblebee-indicator.desktop
>>> chmod +x -R %{buildroot}%{_datadir}/%{name}
>>>
>>> # Always start in boot
>>> mkdir -p %{buildroot}%{_sysconfdir}/xdg/autostart
>>> cp bumblebee-indicator.desktop %{buildroot}%{_sysconfdir}/xdg/autostart
>>>
>>>
>>> %changelog
>>> * Mon Mar 19 2012 Simple <simplew8 at gmail.com> 1.0-1
>>> - initial package
>>>
>>>
>>> dkms-acpi_call.spec
>>>
>>>
>>> %define modname acpi_call
>>>
>>> Name:           dkms-%{modname}
>>> Summary:        A kernel module that enables you to call ACPI methods
>>> Group:          System/Kernel and hardware
>>> Version:        0.1
>>> Release:        %mkrel 1
>>> URL:            https://github.com/Bumblebee-Project/acpi_call
>>> License:        GPL
>>> # source from git repo git://github.com/Bumblebee-Project/acpi_call.git
>>> Source0:      %{modname}.tar.xz
>>
>> Needs to be versioned.
>>
>>> BuildArch:    noarch
>>> Requires(post):       dkms
>>> Requires(preun):dkms
>>
>> Needs to require dkms.
>
> Again i dont get why when dkms is only used in post/preun scripts
>
>>>
>>> %description
>>> A kernel module that enables you to call ACPI methods by writing the
>>> method name followed by arguments to /proc/acpi/call.
>>>
>>> %files
>>> %doc README
>>> %{_usrsrc}/%{modname}-%{version}-%{release}/*
>>>
>>> %post
>>> set -x
>>> /usr/sbin/dkms add -m %{modname} -v %{version}-%{release} --rpm_safe_upgrade || :
>>> /usr/sbin/dkms build -m %{modname} -v %{version}-%{release} --rpm_safe_upgrade || :
>>> /usr/sbin/dkms install -m %{modname} -v %{version}-%{release} --rpm_safe_upgrade || :
>>> /sbin/modprobe %{modname} || :
>>
>> Same comments as for the previous dkms package, see mentioned policy.
>>
>>>
>>> %preun
>>> dkms remove --binary -m %{modname} -v %{version}-%{release} --rpm_safe_upgrade --all || :
>>> /sbin/rmmod %{modname} || :
>>>
>>> %prep
>>> %setup -qn %{modname}
>>>
>>> %install
>>> rm -rf %{buildroot}
>>>
>>> mkdir -p -m755 %{buildroot}%{_usrsrc}/%{modname}-%{version}-%{release}
>>> cp -a * %{buildroot}%{_usrsrc}/%{modname}-%{version}-%{release}
>>> # DKMS config
>>> cat > %{buildroot}%{_usrsrc}/%{modname}-%{version}-%{release}/dkms.conf << 'EOF'
>>> PACKAGE_NAME="%{modname}"
>>> PACKAGE_VERSION="%{version}-%{release}"
>>> MAKE[0]="make default KERNELPATH=${kernel_source_dir}"
>>
>>> MAKE_MATCH[0]="make load KERNELPATH=${kernel_source_dir}"
>>
>> MAKE_MATCH[#] is a regular expression field, you have something very
>> different in there. MAKE_MATCH[#] line is unneeded here.
>
> That line shouldnt be there, seams i didnt attach the most updated spec...
>
>>> BUILT_MODULE_NAME[0]="%{modname}"
>>> DEST_MODULE_LOCATION[0]="/kernel/drivers/acpi"
>>> REMAKE_INITRD="no"
>>> AUTOINSTALL="yes"
>>> EOF
>>>
>>> %changelog
>>> * Mon Mar 19 2012 Simple <simplew8 at gmailcom> 1.0-1
>>> - initial package
>>>
>>>
>>> libindicator.spec
>>>
>>>
>>> %define major 7
>>> %define libtool %mklibname indicator3
>>> %define libname %mklibname indicator3_ %{major}
>>> %define libdevel %mklibname indicator3 -d
>>>
>>> Name:           libindicator
>>> Summary:        A set of symbols and convience functions for indicators
>>> Group:          System/Libraries
>>> Version:        0.4.93
>>> Release:        %mkrel 1
>>> License:        GPL-3.0
>>
>> Incorrect license tag.
>>
>>> URL:            http://launchpad.net/libindicator
>>> Source0:        http://launchpad.net/libindicator/0.5/0.4.93/+download//%{name}-%{version}.tar.gz
>>> BuildRequires:  pkgconfig(gtk+-3.0)
>>>
>>> %description
>>> A set of symbols and convience functions that all indicators would like
>>> to use. Not of real use outside of the Ayatana indicators project.
>>>
>>> #--------------------------------------------------------------------
>>> %package -n %{libname}
>>> Summary:        libindicator3 library
>>> Group:          System/Libraries
>>>
>>> %description -n %{libname}
>>> Library for libindicator3.
>>>
>>> %files -n %{libname}
>>> %{_libdir}/libindicator3.so.%{major}*
>>>
>>> #--------------------------------------------------------------------
>>> %package -n %{libtool}-tools
>>> Summary:        libindicator3 tool
>>> Group:          System/Libraries
>>>
>>> %description -n %{libtool}-tools
>>> Tool to load libindicator3 plugins.
>>>
>>> %files -n %{libtool}-tools
>>> %{_libdir}/indicator-loader3
>>> %{_libdir}/libdummy-indicator-blank.so
>>> %{_libdir}/libdummy-indicator-entry-func.so
>>> %{_libdir}/libdummy-indicator-null.so
>>> %{_libdir}/libdummy-indicator-signaler.so
>>> %{_libdir}/libdummy-indicator-simple.so
>>> %{_libdir}/libdummy-indicator-visible.so
>>>
>>> #--------------------------------------------------------------------
>>> %package -n %{libdevel}
>>> Summary:        libindicator3 development files
>>> Group:          Development/GNOME and GTK+
>>> Requires:     %{libname} >= %{version}
>>
>> Shouldn't this be "="?
>
> I think >= is better than just =
>
>>
>>>
>>> %description -n %{libdevel}
>>> Development files needed by libindicator3.
>>>
>>> %files -n %{libdevel}
>>> %doc AUTHORS ChangeLog COPYING INSTALL
>>> %{_includedir}/libindicator3-0.4/libindicator/
>>> %{_libdir}/libindicator3.so
>>> %{_libdir}/pkgconfig/indicator3-0.4.pc
>>> %{_datadir}/libindicator/80indicator-debugging
>>>
>>> #--------------------------------------------------------------------
>>> %prep
>>> %setup -q
>>>
>>> %build
>>> %configure \
>>>   --disable-static
>>> %make
>>>
>>> %install
>>> %makeinstall_std
>>>
>>> # Clean .la files
>>> find %{buildroot}%{_libdir} -name '*.la' -delete -print
>>>
>>>
>>> %changelog
>>> * Sun Mar 18 2012 Simple <simplew8 at gmail.com> 0.4.93-1
>>> - first package
>>>
>>>
>>> virtualgl.spec
>>>
>>>
>>> %define oname VirtualGL
>>> %define libname %mklibname %{name}
>>>
>>> Name:           virtualgl
>>> Summary:        A toolkit for displaying OpenGL applications to thin clients
>>> Group:          Networking/Other
>>> Version:        2.3
>>> Release:        %mkrel 1
>>> URL:            http://www.virtualgl.org
>>> License:        wxWindows Library License v3.1
>>
>> Incorrect tag, see license policy as mentioned previously.
>>
>>> Source0:      http://prdownloads.sourceforge.net/virtualgl/%{oname}-%{version}.tar.gz
>>> Patch0:               vgl_2.3_patch0
>>
>> Please name this properly, and with a .patch extension.
>
> Again a typo...
>
>>> BuildRequires:        X11-devel
>>> BuildRequires:        jpeg-devel
>>> BuildRequires:        cmake
>>>
>>>
>>> %description
>>> VirtualGL is a library which allows most Linux OpenGL applications to be
>>> remotely displayed to a thin client without the need to alter the
>>> applications in any way.  VGL inserts itself into an application at run time
>>> and intercepts a handful of GLX calls, which it reroutes to the server's
>>> display (which presumably has a 3D accelerator attached.)  This causes all
>>> 3D rendering to occur on the server's display.  As each frame is rendered
>>> by the server, VirtualGL reads back the pixels from the server's framebuffer
>>> and sends them to the client for re-compositing into the appropriate X
>>> Window.  VirtualGL can be used to give hardware-accelerated 3D capabilities to
>>> VNC or other remote display environments that lack GLX support.  In a LAN
>>> environment, it can also be used with its built-in motion-JPEG video delivery
>>> system to remotely display full-screen 3D applications at 20+ frames/second.
>>>
>>> VirtualGL is based upon ideas presented in various academic papers on
>>> this topic, including "A Generic Solution for Hardware-Accelerated Remote
>>> Visualization" (Stegmaier, Magallon, Ertl 2002) and "A Framework for
>>> Interactive Hardware Accelerated Remote 3D-Visualization" (Engel, Sommer,
>>> Ertl 2000.)
>>>
>>> %files
>>> %{_bindir}/*
>>> %{_defaultdocdir}/%{name}/
>>
>> Mark docs as %doc.
>
> Correct, that also missed my attention.
>
>>>
>>> #--------------------------------------------------------------------
>>> %package -n %libname
>>> Summary: Libraries injected by VirtualGL into applications that are ran through it
>>> Group: System/Libraries
>>>
>>> %description -n %libname
>>> Libraries injected by VirtualGL into applications that are ran throught it.
>>> Lib package allow installing 32 and 64 bits libraries at the same time.
>>>
>>> %files -n %libname
>>> %dir %{_libdir}/fakelib/
>>> %{_libdir}/fakelib/libGL.so
>>> %{_libdir}/librrfaker.so
>>> %{_libdir}/libdlfaker.so
>>> %{_libdir}/libgefaker.so
>>
>> This will need %_provides_exceptions or %_exclude_files_from_autoprov so
>> that devel(GL) won't be provided. This would confuse the -devel
>> dependencies of the distribution, and libvirtualgl could sometimes be
>> installed when libmesagl-devel is intended.
>>
>>> #--------------------------------------------------------------------
>>> %package devel
>>> Summary:      A toolkit for displaying OpenGL applications to thin clients
>>> Group:                Networking/Other
>>> Requires:     %{libname} >= %{version}
>>
>> Should be '=' AFAICS.
>>
>>> %description devel
>>> VirtualGL is a library which allows most Linux OpenGL applications to be
>>> remotely displayed to a thin client without the need to alter the
>>> applications in any way.  VGL inserts itself into an application at run
>>> time and intercepts a handful of GLX calls, which it reroutes to the
>>> server's display (which presumably has a 3D accelerator attached). This
>>> causes all 3D rendering to occur on the server's display.  As each frame
>>> is rendered by the server, VirtualGL reads back the pixels from the
>>> server's framebuffer and sends them to the client for re-compositing into
>>> the appropriate X Window. VirtualGL can be used to give hardware-
>>> -accelerated 3D capabilities to VNC or other remote display environments
>>> that lack GLX support.  In a LAN environment, it can also be used with
>>> its built-in motion-JPEG video delivery system to remotely display
>>> full-screen 3D applications at 20+ frames/second.
>>> VirtualGL is based upon ideas presented in various academic papers on
>>> this topic, including "A Generic Solution for Hardware-Accelerated Remote
>>> Visualization" (Stegmaier, Magallon, Ertl 2002) and "A Framework for
>>> Interactive Hardware Accelerated Remote 3D-Visualization" (Engel, Sommer,
>>> Ertl 2000.)
>>>
>>> %files devel
>>> %{_includedir}/rrtransport.h
>>> %{_includedir}/rr.h
>>>
>>> #--------------------------------------------------------------------
>>> %prep
>>> %setup -qn %{oname}-%{version}
>>> %patch0 -p1
>>>
>>> %build
>>> cmake -G "Unix Makefiles" \
>>>     -DCMAKE_INSTALL_LIBDIR:PATH=%{_libdir} \
>>>     -DCMAKE_INSTALL_PREFIX=%{_prefix} \
>>>     -DVGL_DOCDIR=%{_defaultdocdir}/%{name} \
>>>     -DVGL_LIBDIR=%{_libdir} \
>>>     -DTJPEG_INCLUDE_DIR=%{_includedir} \
>>>     -DTJPEG_LIBRARY=%{_libdir}/libturbojpeg.so
>>
>> Should use %cmake.
>
> In this case that is not possible, i did tried %cmake but fails.
>
>>> %make
>>>
>>> %install
>>> rm -rf %{buildroot}
>>> %makeinstall_std
>>>
>>> rm -rf %{buildroot}%{_prefix}/fakelib
>>> mkdir -p %{buildroot}%{_libdir}/fakelib
>>> ln -sf ../librrfaker.so %{buildroot}%{_libdir}/fakelib/libGL.so
>>> mv -f %{buildroot}%{_bindir}/glxinfo %{buildroot}%{_bindir}/glxinfo2
>>>
>>>
>>> %changelog
>>> * Mon Mar 19 2012 Simple <simplew8 at gmail.com> 2.3-1
>>> - first package
>>>
>>
>>
>> --
>> Anssi Hannula


I forgot to attach other 2 specs that are needed, and im also
attaching a new bumblebee-ui.spec since i forgot to add some requires.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: indicator-appmenu.spec
Type: application/octet-stream
Size: 1235 bytes
Desc: not available
URL: </pipermail/mageia-dev/attachments/20120410/ee08a894/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bumblebee-ui.spec
Type: application/octet-stream
Size: 1934 bytes
Desc: not available
URL: </pipermail/mageia-dev/attachments/20120410/ee08a894/attachment-0004.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: libappindicator.spec
Type: application/octet-stream
Size: 3272 bytes
Desc: not available
URL: </pipermail/mageia-dev/attachments/20120410/ee08a894/attachment-0005.obj>


More information about the Mageia-dev mailing list