如何用rpmbuild打包qmake工程

1. 首先得確保工程的qmake編譯沒有問題

2. 其次需要產(chǎn)生可以被rpmbuild讀取的源碼包:

對(duì)于git工程可以用如下命令:

export VERSION_SHORT=1.1.0

git archive --format=tar HEAD | gzip > qt-example-${VERSION_SHORT}-src.tar.gz

對(duì)于svn工程帽蝶,可以用如下命令:

PROJ='yourproj' &&

URL='http://svn.example.com/svn/repo/$PROJ' &&

REV=`svn info $URL | fgrep Revision | cut -d ' ' -f 2` && ?

cd ~/tmp &&

svn export $URL $PROJ &&

tar czv -f $PROJ.r$REV.tar.gz $PROJ &&

rm -r $PROJ.r$REV

3. 建立rpmbuild需要的目錄結(jié)構(gòu)

export WORKSPACE=$(mktemp -d)

mkdir -p $WORKSPACE/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}

echo Working in $WORKSPACE

4. 建立Qt的編譯環(huán)境

export BITS=$(getconf LONG_BIT)

export QMAKESPEC=linux-g++-$BITS

export QTDIR=/opt/Trolltech/5.12.6

export PATH=$QTDIR/bin:$PATH


echo -- QTDIR set to "$QTDIR"

echo -- QMAKESPEC set to "$QMAKESPEC"

echo -- PATH set to "$PATH"

5. 建立rpmbuild需要的版本信息和spec文件渐排、源碼等

export VERSION_MAJOR=1

export VERSION_MINOR=0

export VERSION_REVISION=20

export VERSION_BUILD=$(git log --pretty=format:'%h' -n 1)

export VERSION_SHORT=${VERSION_MAJOR}${VERSION_MINOR}${VERSION_REVISION}${VERSION_BUILD}

export VERSION_LONG=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}.${VERSION_BUILD}


echo -- Major $VERSION_MAJOR

echo -- Minor $VERSION_MINOR

echo -- Revision $VERSION_REVISION

echo -- Build $VERSION_BUILD

將源代碼壓縮包和spec文件分別拷貝到對(duì)應(yīng)的目錄:

ARCHIVE=$(find `pwd` -name 'qt-example-*-src.tar.gz' -type f | head -1)

SPEC=$(find `pwd` -name 'qt-example.spec' -type f | head -1)

cp $ARCHIVE $WORKSPACE/SOURCES

cp $SPEC $WORKSPACE/SPECS

6. 運(yùn)行rpmbuild生成rpm包:

# Change to workspace

cd $WORKSPACE


# Make RPM

rpmbuild --define "_topdir ${WORKSPACE}" -ba -vv $WORKSPACE/SPECS/qt-example*.spec

7. 附錄.spec文件的寫法

%define VERSION_LONG %(echo $VERSION_LONG)

%define VERSION_SHORT %(echo $VERSION_SHORT)


%define VERSION_MAJOR %(echo $VERSION_MAJOR)

%define VERSION_MINOR %(echo $VERSION_MINOR)

%define VERSION_REVISION %(echo $VERSION_REVISION)

%define VERSION_BUILD %(echo $VERSION_BUILD)


#

# Qt Example

#

Summary: An example application compiled with QMake that was turned into an RPM.

Name: qt-example

Version: %{VERSION_LONG}

Release: %{VERSION_BUILD}

License: MIT

Group: Applications

Source: http://corpration.domain/not/path/to/application/qt-example-%{VERSION_SHORT}-src.tar.gz

URL: http://corpration.domain

Vendor: http://corpration.domain

Packager: Author Name<author.name@copration.com>


%description

Application that exists purely to exemplify how to build an RPM package.


%prep

%setup -n source


%build

qmake -r

make -f Makefile.$QMAKESPEC all


%install

INSTALL_ROOT=%{buildroot}/usr make -f Makefile.$QMAKESPEC install


%post


%postun


%files

%{_bindir}/*

%{_libdir}/*


%changelog

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末卦羡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌油昂,老刑警劉巖殴玛,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異翘地,居然都是意外死亡申尤,警方通過查閱死者的電腦和手機(jī)癌幕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昧穿,“玉大人勺远,你說我怎么就攤上這事∈蓖遥” “怎么了胶逢?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)寥枝。 經(jīng)常有香客問我宪塔,道長(zhǎng),這世上最難降的妖魔是什么囊拜? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任某筐,我火速辦了婚禮,結(jié)果婚禮上冠跷,老公的妹妹穿的比我還像新娘南誊。我一直安慰自己,他們只是感情好蜜托,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布抄囚。 她就那樣靜靜地躺著,像睡著了一般橄务。 火紅的嫁衣襯著肌膚如雪幔托。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天蜂挪,我揣著相機(jī)與錄音重挑,去河邊找鬼。 笑死棠涮,一個(gè)胖子當(dāng)著我的面吹牛谬哀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播严肪,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼史煎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了驳糯?” 一聲冷哼從身側(cè)響起篇梭,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酝枢,沒想到半個(gè)月后很洋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡隧枫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年喉磁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谓苟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡协怒,死狀恐怖涝焙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孕暇,我是刑警寧澤仑撞,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站妖滔,受9級(jí)特大地震影響隧哮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜座舍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一沮翔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧曲秉,春花似錦采蚀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至亥鸠,卻和暖如春妆够,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背负蚊。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工神妹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盖桥。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓灾螃,卻偏偏與公主長(zhǎng)得像题翻,于是被迫代替她去往敵國(guó)和親揩徊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容