Re: Problem with gnome-shell-extension-prefs on GNOME 3.4.2



On Sun, 2012-09-02 at 16:23 -0500, Craig Rob l300lvl wrote:
> It would be ok to test it out I think, but I'm not very confident
> patching and all that. When you say its at the top of the git-tree,
> which version of gjs is that that it might be patched in and sent
> upstream.
> 
> Is that the version of the rpms built that have to be forced? I'm sure
> theres not a whole lot that can go wrong forcing the install and if so I
> can always revert via runlevel 3.

Craig:

The --force allows you to replace the installed RPM with the same
version.  I am not familiar with suse package management so I think its
best to keep the version the same so later version updates from suse
aren't affected.

The top of the tree is where the latest development changes are applied.
Its actually not a version.  Different projects manage it different
ways.  In the gnome project's case it looks like they update the version
in the configure.ac file, commit that change and tag the commit as the
version.  I cloned their repository so I could use git-gui which
presents the info quite nicely.  I really like git. Its much better than
sccs of neolithic times.

The last released version is 1.33.9.  They had four commits since the
release.  You want to apply the patch to the current version that
OpenSuse has provided.  All the dependencies in the source rpm are based
on that version.

The following should get you some RPMs.
Read through this and if you see anything funky let me know.
I suggest you remove or move any current rpmbuild directory in your home
dir.

Install the source rpm in your home dir.
rpm -ivh gjs-1.32.0-2.2.2.src.rpm  

You should get:
~/rpmbuild    
with these subdirectories
SOURCES  SPECS

Create these additonal directories in ~/rpmbuild
to get...
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

create ~/.rpmmacros with these contents (use your personal info of
course).

%_topdir /home/bogwan/rpmbuild
%packager Norman Smith  <nls1729 gmail com>
%_tmppath /tmp

Add these lines to the spec file in SPECS:
Patch1:         123b631e40b8e60475e41d32263a3e99207dcfde.patch
%patch1 -p1
%global _default_patch_fuzz 100

In your home dir:

[1]   rpmbuild -bp -v rpmbuild/SPECS/gjs.spec
You should see the patch installed something like the following:
Executing(%prep): /bin/sh -e /tmp/rpm-tmp.Fj2jLr
+ umask 022
+ cd /home/bogwan/rpmbuild/BUILD
+ cd /home/bogwan/rpmbuild/BUILD
+ rm -rf gjs-1.32.0
+ /usr/bin/xz -dc /home/bogwan/rpmbuild/SOURCES/gjs-1.32.0.tar.xz
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd gjs-1.32.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ echo 'Patch #0 (gjs-getpid_uid_gid.patch):'
Patch #0 (gjs-getpid_uid_gid.patch):
+ /usr/bin/cat /home/bogwan/rpmbuild/SOURCES/gjs-getpid_uid_gid.patch
+ /usr/bin/patch -s -p1 --fuzz=100
+ echo 'Patch #1 (123b631e40b8e60475e41d32263a3e99207dcfde.patch):'
Patch #1 (123b631e40b8e60475e41d32263a3e99207dcfde.patch):
+ /usr/bin/cat /home/bogwan/rpmbuild/SOURCES/123b631e40b8e60475e41d32263a3e99207dcfde.patch
+ /usr/bin/patch -s -p1 --fuzz=100
+ exit 0

[2] rpmbuild -bc -v rpmbuild/SPECS/gjs.spec
everything should build.. then +exit 0
[3] rpmbuild -bb -v rpmbuild/SPECS/gjs.spec
Does everthing again and builds the RPMs

cd rpmbuild/RPMS/x86_64
You should find:
gjs-1.32.0-2.2.2.x86_64.rpm
libgjs0-1.32.0-2.2.2.x86_64.rpm
libgjs-devel-1.32.0-2.2.2.x86_64.rpm
typelib-1_0-GjsDBus-1_0-1.32.0-2.2.2.x86_64.rpm

Here you do:
su -c "rpm --force -ivh *.rpm"
All should be OK. Hopefully I've not left anything out..

The following links are good stuff for reference.
http://fedoraproject.org/wiki/How_to_create_an_RPM_package
http://serverfault.com/questions/18620/how-to-create-an-rpm-for-suse

You need to remember that if OpenSuse releases an updated gjs RPM that
does not include this patch you are back in the ditch.

Norman

> 
> > On Sun, 2012-09-02 at 02:51 -0500, Craig Rob l300lvl wrote:
> > > Thanks.
> > > 
> > > I do believe I did everything correctly, but I'm missing something. I
> > > downloaded gjs from
> > > http://download.opensuse.org/factory-snapshot/repo/source/suse/src/gjs-1.32.0-2.2.2.src.rpm extracted the source and applied the gobject patch and the other patch in that rpm, I tried buildrpm with spec file but I failed at modifying spec correctly I think(i just added the new patch to it in 2 places). I then did a ./configure, make, sudo make install and rebooted. Yast is still showing the previous install date, and I still get the crashing, so I think I'm not installing correctly.
> > > 
> > 
> > Craig:
> > 
> > I was able to get the RPMs built. I did a few things that I would not
> > recommend as usual practice. The patch that Jasper referred you to is at
> > the top of the git tree which is several changes past version 1.32.  I
> > changed the spec file and got it to go through with the patch by setting
> > the global fuzz to 125 after several attempts at smaller values.  I
> > checked the patched source and saw no apparent damage. You could patch
> > it by hand but running the whole RPM build process gives you three RPMs
> > that need to be installed with --force.
> > 
> > I installed the RPMs and the extensions prefs no longer crash because of
> > using GOjects in prefs.js.  If you want I can give you the steps I found
> > to build the RPMs.
> > 
> > This patch needs to be applied at the affected distros.
> > 
> > I haven't tested every extension I have tested the following:
> > 
> > Activities Text - OK
> > Activities Configurator - OK
> > Status Area Horizontal Spacing - OK
> > Workspace Indicator - OK
> > Window Buttons - OK
> > 
> > Window Options - Get red ERROR on website but it is installed and can be
> > configured locally
> > 
> > Maximus - Fails  Error: Error invoking bindtextdomain, at argument 1
> > (domain): Object is not a string, cannot convert to UTF-8 ...
> > maximus mathematical coffee gmail com/prefs.js:25....
> > 
> > 
> > Norman
> 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]