LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (https://www.linuxquestions.org/questions/linux-software-2/)
-   -   Compile firefox.tar.bz2 into RPM (https://www.linuxquestions.org/questions/linux-software-2/compile-firefox-tar-bz2-into-rpm-802380/)

rexus 04-16-2010 06:48 AM

Compile firefox.tar.bz2 into RPM
 
Hi all,

I'm using Oracle Linux to play around with Oracle database.
I would like to install the latest firefox browser because it is still using firefox 3.0.6.
Firefox provides the tar.bz2 and I want this tar.bz2 converted to rpm so I could install and uninstall it easily. It is not that I think tar.bz2 is that hard but I just think rpm is easier to maintain.

What I understand is that we need a spec file to build this tarball to rpm binary. As far as I know, firefox doesn't have this spec file.

Please give me some hints so I can do this.

Thank you,
rexus

smoker 04-16-2010 07:09 AM

Oracle linux is RHEL.

Use your up2date or yum software to install a later version.

Just because the version isn't the same doesn't mean it is insecure. The RHEL team patch their versions with latest security updates.

AFAIK the latest for RHEL 5 is 3.0.9-1

If you put a non release rpm on the system you will probably break something.
Besides which, there are other libraries that the latest Firefox requires which may not be on your system.

I don't see how maintenance is an issue with the tar file. You just delete the directory.

the firefox.tar.bz2 is a binary package, not source. Unzip it and run it. But backup your .mozilla directory first .

RPMs usually build from source.
http://www.rpm.org/max-rpm/s1-rpm-bu...spec-file.html

rexus 04-16-2010 11:02 AM

thanks smoker.
I didn't know that firefox tarball is already a binary.
What I have in mind before your post was that every program comes out with .tar.gz or .tar.bz2 is a source because we have to run the ./configure -> make -> make install steps.
Thanks for the enlightening.

If I follow your way of backing up everything then put the binary files in the old place, then the command rpm -e firefox will never be valid anymore right?
What I wanted to do is simply creating an rpm file out of a tarball so that I can do rpm -ivh or rpm -Uvh and rpm -e for that program.

Please let me know if this is possible to be done using the firefox tarball.

unSpawn 04-16-2010 12:32 PM

firefox-3.6.3.tar.bz2
 
Quote:

Originally Posted by rexus (Post 3937756)
Please let me know if this is possible to be done using the firefox tarball.

You can only create RPMs from a tarball if it contains or is accompanied by the .spec file. Nonetheless...

Quote:

Originally Posted by rexus (Post 3937756)
What I wanted to do is simply creating an rpm file out of a tarball so that I can do rpm -ivh or rpm -Uvh and rpm -e for that program.

...try this below but remember YMMV(VM):

0. Run 'mkdir -p /home/rexus/redhat/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}'
1. Place this as ~/.rpmmacros:
Code:

%_topdir        /home/rexus/redhat
%_tmppath        %{_topdir}/tmp
%fname                %{name}-%{version}.%{release}
%_builddir        %{_topdir}/BUILD
%_rpmdir        %{_topdir}/RPMS
%_sourcedir        %{_topdir}/SOURCES
%_specdir        %{_topdir}/SPECS
%_srcrpmdir        %{_topdir}/SRPMS
%distribution        none
%vendor                none

2. D/L firefox-3.6.3.tar.bz2 to the SOURCES dir.
3. Place following .spec file as /home/rexus/redhat/SPECS/firefox.spec
Code:

%define debug_packages        %{nil}
%define debug_package %{nil}
%define name firefox
%define ver 3.6.3
%define rel 1

Name: %{name}
Summary: %{name}, the Mozilla browser
Version: %{ver}
Release: %{rel}
License: GPL
Group: Applications/Internet
Source0: %{name}-%{ver}.tar.bz2
Provides: %{name}
Vendor: Mozilla Corporation
URL: (http://www.mozilla.com/)
BuildRoot: %{_tmppath}/%{name}

%description
Mozilla %{name} browser

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p ${RPM_BUILD_ROOT}/usr/local
tar -C ${RPM_BUILD_ROOT}/usr/local -xjf ${RPM_SOURCE_DIR}/%{name}-%{ver}.tar.bz2
find ${RPM_BUILD_ROOT}  > contents.txt
                                               
%clean
rm -rf $RPM_BUILD_ROOT

%files
%attr(755,root,root) /usr/local/firefox/
%attr(644,root,root) /usr/local/firefox/mozilla-xremote-client
%attr(644,root,root) /usr/local/firefox/platform.ini
%attr(644,root,root) /usr/local/firefox/README.txt
%attr(644,root,root) /usr/local/firefox/libsoftokn3.chk
%attr(644,root,root) /usr/local/firefox/libnssckbi.so
%attr(644,root,root) /usr/local/firefox/libxul.so
%attr(644,root,root) /usr/local/firefox/crashreporter-override.ini
%attr(644,root,root) /usr/local/firefox/libxpcom.so
%attr(644,root,root) /usr/local/firefox/greprefs/
%attr(644,root,root) /usr/local/firefox/greprefs/xpinstall.js
%attr(644,root,root) /usr/local/firefox/greprefs/security-prefs.js
%attr(644,root,root) /usr/local/firefox/greprefs/all.js
%attr(644,root,root) /usr/local/firefox/crashreporter.ini
%attr(755,root,root) /usr/local/firefox/icons/
%attr(644,root,root) /usr/local/firefox/icons/updater.png
%attr(644,root,root) /usr/local/firefox/icons/mozicon128.png
%attr(644,root,root) /usr/local/firefox/icons/document.png
%attr(644,root,root) /usr/local/firefox/libplds4.so
%attr(755,root,root) /usr/local/firefox/extensions/
%attr(755,root,root) /usr/local/firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/
%attr(644,root,root) /usr/local/firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/preview.png
%attr(644,root,root) /usr/local/firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
%attr(755,root,root) /usr/local/firefox/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
%attr(644,root,root) /usr/local/firefox/modules/
%attr(644,root,root) /usr/local/firefox/modules/LightweightThemeManager.jsm
%attr(644,root,root) /usr/local/firefox/modules/distribution.js
%attr(644,root,root) /usr/local/firefox/modules/Microformats.js
%attr(644,root,root) /usr/local/firefox/modules/debug.js
%attr(644,root,root) /usr/local/firefox/modules/XPCOMUtils.jsm
%attr(644,root,root) /usr/local/firefox/modules/NetworkPrioritizer.jsm
%attr(644,root,root) /usr/local/firefox/modules/LightweightThemeConsumer.jsm
%attr(644,root,root) /usr/local/firefox/modules/FileUtils.jsm
%attr(644,root,root) /usr/local/firefox/modules/utils.js
%attr(644,root,root) /usr/local/firefox/modules/DownloadLastDir.jsm
%attr(644,root,root) /usr/local/firefox/modules/PluralForm.jsm
%attr(644,root,root) /usr/local/firefox/modules/PlacesDBUtils.jsm
%attr(644,root,root) /usr/local/firefox/modules/NetUtil.jsm
%attr(644,root,root) /usr/local/firefox/modules/openLocationLastURL.jsm
%attr(644,root,root) /usr/local/firefox/modules/SpatialNavigation.js
%attr(644,root,root) /usr/local/firefox/modules/WindowDraggingUtils.jsm
%attr(644,root,root) /usr/local/firefox/modules/CertUtils.jsm
%attr(644,root,root) /usr/local/firefox/modules/ctypes.jsm
%attr(644,root,root) /usr/local/firefox/modules/DownloadUtils.jsm
%attr(644,root,root) /usr/local/firefox/modules/ISO8601DateUtils.jsm
%attr(644,root,root) /usr/local/firefox/application.ini
%attr(644,root,root) /usr/local/firefox/Throbber-small.gif
%attr(755,root,root) /usr/local/firefox/chrome/
%attr(644,root,root) /usr/local/firefox/chrome/browser.manifest
%attr(644,root,root) /usr/local/firefox/chrome/toolkit.jar
%attr(644,root,root) /usr/local/firefox/chrome/comm.jar
%attr(644,root,root) /usr/local/firefox/chrome/pippki.manifest
%attr(755,root,root) /usr/local/firefox/chrome/icons/
%attr(755,root,root) /usr/local/firefox/chrome/icons/default/
%attr(644,root,root) /usr/local/firefox/chrome/icons/default/default16.png
%attr(644,root,root) /usr/local/firefox/chrome/icons/default/default32.png
%attr(644,root,root) /usr/local/firefox/chrome/icons/default/default48.png
%attr(644,root,root) /usr/local/firefox/chrome/en-US.jar
%attr(644,root,root) /usr/local/firefox/chrome/toolkit.manifest
%attr(644,root,root) /usr/local/firefox/chrome/en-US.manifest
%attr(644,root,root) /usr/local/firefox/chrome/classic.manifest
%attr(644,root,root) /usr/local/firefox/chrome/browser.jar
%attr(644,root,root) /usr/local/firefox/chrome/reporter.jar
%attr(644,root,root) /usr/local/firefox/chrome/comm.manifest
%attr(644,root,root) /usr/local/firefox/chrome/pippki.jar
%attr(644,root,root) /usr/local/firefox/chrome/reporter.manifest
%attr(644,root,root) /usr/local/firefox/chrome/classic.jar
%attr(644,root,root) /usr/local/firefox/update.locale
%attr(644,root,root) /usr/local/firefox/libsmime3.so
%attr(644,root,root) /usr/local/firefox/libmozjs.so
%attr(644,root,root) /usr/local/firefox/firefox-bin
%attr(644,root,root) /usr/local/firefox/.autoreg
%attr(755,root,root) /usr/local/firefox/dictionaries/
%attr(644,root,root) /usr/local/firefox/dictionaries/en-US.dic
%attr(644,root,root) /usr/local/firefox/dictionaries/en-US.aff
%attr(755,root,root) /usr/local/firefox/res/
%attr(644,root,root) /usr/local/firefox/res/language.properties
%attr(644,root,root) /usr/local/firefox/res/hiddenWindow.html
%attr(644,root,root) /usr/local/firefox/res/langGroups.properties
%attr(644,root,root) /usr/local/firefox/res/table-add-column-after-active.gif
%attr(755,root,root) /usr/local/firefox/res/dtd/
%attr(644,root,root) /usr/local/firefox/res/dtd/xhtml11.dtd
%attr(644,root,root) /usr/local/firefox/res/dtd/mathml.dtd
%attr(644,root,root) /usr/local/firefox/res/table-add-column-before-active.gif
%attr(644,root,root) /usr/local/firefox/res/table-remove-row-active.gif
%attr(644,root,root) /usr/local/firefox/res/html.css
%attr(644,root,root) /usr/local/firefox/res/table-remove-row.gif
%attr(644,root,root) /usr/local/firefox/res/table-add-row-after.gif
%attr(644,root,root) /usr/local/firefox/res/viewsource.css
%attr(644,root,root) /usr/local/firefox/res/forms.css
%attr(644,root,root) /usr/local/firefox/res/table-remove-column.gif
%attr(644,root,root) /usr/local/firefox/res/quirk.css
%attr(644,root,root) /usr/local/firefox/res/svg.css
%attr(644,root,root) /usr/local/firefox/res/charsetData.properties
%attr(644,root,root) /usr/local/firefox/res/table-add-column-after-hover.gif
%attr(644,root,root) /usr/local/firefox/res/broken-image.png
%attr(755,root,root) /usr/local/firefox/res/fonts/
%attr(644,root,root) /usr/local/firefox/res/fonts/mathfont.properties
%attr(644,root,root) /usr/local/firefox/res/fonts/mathfontStandardSymbolsL.properties
%attr(644,root,root) /usr/local/firefox/res/fonts/mathfontUnicode.properties
%attr(644,root,root) /usr/local/firefox/res/fonts/mathfontSTIXNonUnicode.properties
%attr(644,root,root) /usr/local/firefox/res/fonts/mathfontSTIXSize1.properties
%attr(644,root,root) /usr/local/firefox/res/table-remove-column-active.gif
%attr(644,root,root) /usr/local/firefox/res/table-add-column-after.gif
%attr(644,root,root) /usr/local/firefox/res/grabber.gif
%attr(644,root,root) /usr/local/firefox/res/table-add-row-before-active.gif
%attr(644,root,root) /usr/local/firefox/res/table-add-row-after-hover.gif
%attr(644,root,root) /usr/local/firefox/res/unixcharset.properties
%attr(644,root,root) /usr/local/firefox/res/table-add-column-before.gif
%attr(644,root,root) /usr/local/firefox/res/table-add-column-before-hover.gif
%attr(644,root,root) /usr/local/firefox/res/designmode.css
%attr(644,root,root) /usr/local/firefox/res/table-add-row-before.gif
%attr(644,root,root) /usr/local/firefox/res/table-remove-column-hover.gif
%attr(644,root,root) /usr/local/firefox/res/mathml.css
%attr(644,root,root) /usr/local/firefox/res/arrow.gif
%attr(644,root,root) /usr/local/firefox/res/contenteditable.css
%attr(644,root,root) /usr/local/firefox/res/table-add-row-before-hover.gif
%attr(644,root,root) /usr/local/firefox/res/table-remove-row-hover.gif
%attr(644,root,root) /usr/local/firefox/res/ua.css
%attr(644,root,root) /usr/local/firefox/res/loading-image.png
%attr(644,root,root) /usr/local/firefox/res/EditorOverride.css
%attr(644,root,root) /usr/local/firefox/res/charsetalias.properties
%attr(644,root,root) /usr/local/firefox/res/entityTables/
%attr(644,root,root) /usr/local/firefox/res/entityTables/html40Special.properties
%attr(644,root,root) /usr/local/firefox/res/entityTables/mathml20.properties
%attr(644,root,root) /usr/local/firefox/res/entityTables/htmlEntityVersions.properties
%attr(644,root,root) /usr/local/firefox/res/entityTables/html40Symbols.properties
%attr(644,root,root) /usr/local/firefox/res/entityTables/transliterate.properties
%attr(644,root,root) /usr/local/firefox/res/entityTables/html40Latin1.properties
%attr(644,root,root) /usr/local/firefox/res/arrowd.gif
%attr(755,root,root) /usr/local/firefox/res/html/
%attr(644,root,root) /usr/local/firefox/res/html/folder.png
%attr(644,root,root) /usr/local/firefox/res/table-add-row-after-active.gif
%attr(755,root,root) /usr/local/firefox/defaults/
%attr(755,root,root) /usr/local/firefox/defaults/pref/
%attr(644,root,root) /usr/local/firefox/defaults/pref/reporter.js
%attr(644,root,root) /usr/local/firefox/defaults/pref/firefox.js
%attr(644,root,root) /usr/local/firefox/defaults/pref/channel-prefs.js
%attr(644,root,root) /usr/local/firefox/defaults/pref/firefox-l10n.js
%attr(644,root,root) /usr/local/firefox/defaults/pref/firefox-branding.js
%attr(644,root,root) /usr/local/firefox/defaults/profile/
%attr(644,root,root) /usr/local/firefox/defaults/profile/bookmarks.html
%attr(644,root,root) /usr/local/firefox/defaults/profile/chrome/
%attr(644,root,root) /usr/local/firefox/defaults/profile/chrome/userContent-example.css
%attr(644,root,root) /usr/local/firefox/defaults/profile/chrome/userChrome-example.css
%attr(644,root,root) /usr/local/firefox/defaults/profile/mimeTypes.rdf
%attr(644,root,root) /usr/local/firefox/defaults/profile/prefs.js
%attr(644,root,root) /usr/local/firefox/defaults/profile/localstore.rdf
%attr(644,root,root) /usr/local/firefox/defaults/autoconfig/
%attr(644,root,root) /usr/local/firefox/defaults/autoconfig/prefcalls.js
%attr(644,root,root) /usr/local/firefox/defaults/autoconfig/platform.js
%attr(644,root,root) /usr/local/firefox/libnssdbm3.chk
%attr(644,root,root) /usr/local/firefox/blocklist.xml
%attr(644,root,root) /usr/local/firefox/libnssutil3.so
%attr(644,root,root) /usr/local/firefox/libnssdbm3.so
%attr(755,root,root) /usr/local/firefox/updater
%attr(755,root,root) /usr/local/firefox/run-mozilla.sh
%attr(755,root,root) /usr/local/firefox/components/
%attr(644,root,root) /usr/local/firefox/components/nsPlacesTransactionsService.js
%attr(644,root,root) /usr/local/firefox/components/nsSafebrowsingApplication.js
%attr(644,root,root) /usr/local/firefox/components/nsAddonRepository.js
%attr(644,root,root) /usr/local/firefox/components/nsLoginManager.js
%attr(644,root,root) /usr/local/firefox/components/nsTaggingService.js
%attr(644,root,root) /usr/local/firefox/components/libimgicon.so
%attr(644,root,root) /usr/local/firefox/components/nsBrowserContentHandler.js
%attr(644,root,root) /usr/local/firefox/components/nsUrlClassifierListManager.js
%attr(644,root,root) /usr/local/firefox/components/nsDefaultCLH.js
%attr(644,root,root) /usr/local/firefox/components/nsLivemarkService.js
%attr(644,root,root) /usr/local/firefox/components/nsProxyAutoConfig.js
%attr(644,root,root) /usr/local/firefox/components/nsSearchSuggestions.js
%attr(644,root,root) /usr/local/firefox/components/fuelApplication.js
%attr(644,root,root) /usr/local/firefox/components/nsExtensionManager.js
%attr(644,root,root) /usr/local/firefox/components/FeedProcessor.js
%attr(644,root,root) /usr/local/firefox/components/nsLoginInfo.js
%attr(644,root,root) /usr/local/firefox/components/nsBadCertHandler.js
%attr(644,root,root) /usr/local/firefox/components/browser.xpt
%attr(644,root,root) /usr/local/firefox/components/storage-mozStorage.js
%attr(644,root,root) /usr/local/firefox/components/NetworkGeolocationProvider.js
%attr(644,root,root) /usr/local/firefox/components/libdbusservice.so
%attr(644,root,root) /usr/local/firefox/components/nsDownloadManagerUI.js
%attr(644,root,root) /usr/local/firefox/components/nsPrivateBrowsingService.js
%attr(644,root,root) /usr/local/firefox/components/nsPlacesAutoComplete.js
%attr(644,root,root) /usr/local/firefox/components/nsContentDispatchChooser.js
%attr(644,root,root) /usr/local/firefox/components/nsUrlClassifierLib.js
%attr(644,root,root) /usr/local/firefox/components/nsBrowserGlue.js
%attr(644,root,root) /usr/local/firefox/components/nsTryToClose.js
%attr(644,root,root) /usr/local/firefox/components/FeedWriter.js
%attr(644,root,root) /usr/local/firefox/components/nsUpdateServiceStub.js
%attr(644,root,root) /usr/local/firefox/components/nsHelperAppDlg.js
%attr(644,root,root) /usr/local/firefox/components/pluginGlue.js
%attr(644,root,root) /usr/local/firefox/components/nsMicrosummaryService.js
%attr(644,root,root) /usr/local/firefox/components/libmozgnome.so
%attr(644,root,root) /usr/local/firefox/components/nsSetDefaultBrowser.js
%attr(644,root,root) /usr/local/firefox/components/WebContentConverter.js
%attr(644,root,root) /usr/local/firefox/components/nsPlacesDBFlush.js
%attr(644,root,root) /usr/local/firefox/components/nsWebHandlerApp.js
%attr(644,root,root) /usr/local/firefox/components/nsContentPrefService.js
%attr(644,root,root) /usr/local/firefox/components/nsUpdateTimerManager.js
%attr(644,root,root) /usr/local/firefox/components/libbrowsercomps.so
%attr(644,root,root) /usr/local/firefox/components/nsSessionStartup.js
%attr(644,root,root) /usr/local/firefox/components/jsconsole-clhandler.js
%attr(644,root,root) /usr/local/firefox/components/nsFormAutoComplete.js
%attr(644,root,root) /usr/local/firefox/components/nsFilePicker.js
%attr(644,root,root) /usr/local/firefox/components/nsURLFormatter.js
%attr(644,root,root) /usr/local/firefox/components/GPSDGeolocationProvider.js
%attr(644,root,root) /usr/local/firefox/components/txEXSLTRegExFunctions.js
%attr(644,root,root) /usr/local/firefox/components/nsHandlerService.js
%attr(644,root,root) /usr/local/firefox/components/nsBlocklistService.js
%attr(644,root,root) /usr/local/firefox/components/nsLoginManagerPrompter.js
%attr(644,root,root) /usr/local/firefox/components/nsUpdateService.js
%attr(644,root,root) /usr/local/firefox/components/nsSearchService.js
%attr(644,root,root) /usr/local/firefox/components/components.list
%attr(644,root,root) /usr/local/firefox/components/libbrowserdirprovider.so
%attr(644,root,root) /usr/local/firefox/components/storage-Legacy.js
%attr(644,root,root) /usr/local/firefox/components/FeedConverter.js
%attr(644,root,root) /usr/local/firefox/components/nsSidebar.js
%attr(644,root,root) /usr/local/firefox/components/nsSessionStore.js
%attr(644,root,root) /usr/local/firefox/components/libnkgnomevfs.so
%attr(644,root,root) /usr/local/firefox/libplc4.so
%attr(644,root,root) /usr/local/firefox/LICENSE
%attr(644,root,root) /usr/local/firefox/updater.ini
%attr(644,root,root) /usr/local/firefox/libnspr4.so
%attr(755,root,root) /usr/local/firefox/plugins/
%attr(644,root,root) /usr/local/firefox/plugins/libnullplugin.so
%attr(644,root,root) /usr/local/firefox/libsqlite3.so
%attr(644,root,root) /usr/local/firefox/browserconfig.properties
%attr(644,root,root) /usr/local/firefox/removed-files
%attr(755,root,root) /usr/local/firefox/searchplugins/
%attr(644,root,root) /usr/local/firefox/searchplugins/creativecommons.xml
%attr(644,root,root) /usr/local/firefox/searchplugins/wikipedia.xml
%attr(644,root,root) /usr/local/firefox/searchplugins/amazondotcom.xml
%attr(644,root,root) /usr/local/firefox/searchplugins/yahoo.xml
%attr(644,root,root) /usr/local/firefox/searchplugins/google.xml
%attr(644,root,root) /usr/local/firefox/searchplugins/eBay.xml
%attr(644,root,root) /usr/local/firefox/searchplugins/answers.xml
%attr(644,root,root) /usr/local/firefox/libsoftokn3.so
%attr(755,root,root) /usr/local/firefox/firefox
%attr(644,root,root) /usr/local/firefox/libfreebl3.chk
%attr(644,root,root) /usr/local/firefox/libfreebl3.so
%attr(644,root,root) /usr/local/firefox/libssl3.so
%attr(644,root,root) /usr/local/firefox/libnss3.so
%attr(644,root,root) /usr/local/firefox/crashreporter

%changelog
* Fri Apr 16 2010 %{packager}
- Tarball2RPM of %{name}

4. Run 'rpmbuild -bb /home/rexus/redhat/SPECS/firefox.spec'.
5. Finally NEVER EVER distribute the resulting firefox-3.6.3-1.*.rpm. It's an example and not representative of how RPMs are built.

If you want more information see http://www.ibm.com/developerworks/library/l-rpm1/ and the https://fedoraproject.org/wiki/Packaging/Guidelines.

smoker 04-16-2010 04:54 PM

Quote:

Originally Posted by rexus (Post 3937756)
thanks smoker.
If I follow your way of backing up everything then put the binary files in the old place, then the command rpm -e firefox will never be valid anymore right?
What I wanted to do is simply creating an rpm file out of a tarball so that I can do rpm -ivh or rpm -Uvh and rpm -e for that program.

Please let me know if this is possible to be done using the firefox tarball.

backing up everything ?
It's only one small directory.

No, you will not be able to rpm -e that particular version of firefox, but you will have both versions on the system at that point.
If you want to get rid of the new one, delete the directory you unzipped and the ~/.mozilla directory, then restore your backups. Your original firefox will still work (it will still work when the other one is on the system- just not both at once)

You don't have to "put" the new files anywhere. Just download and unzip. Then "click on" firefox or firefox.bin. This isn't windows...


All times are GMT -5. The time now is 04:26 AM.