openSUSE RPM

65 views
Skip to first unread message

Marguerite Su

unread,
May 4, 2012, 8:57:43 AM5/4/12
to Lonote筆記軟體討論區
1. 在这里:

http://software.opensuse.org/package/lonote?search_term=lonote

请在官网上给个链接吧

很早的,大概是看 hime 的时候随手看到你的项目然后做的。

2. 请维护 changelog。。。。

目前的版本都没有 changelog。。。使用者不知道您提供了什么版本更新。。。我们打包的也蛮枯燥的,只能 Update to 1.7.9 就
一条~

Marguerite Su

unread,
May 4, 2012, 9:07:04 AM5/4/12
to Lonote筆記軟體討論區

另外打包中遇到的需要上游更正的地方也一并反馈一下。

sed -i "s/\r$//" doc/*.txt # Fix wrong EOL encoding
sed -i "s|#!/usr/bin/python3||" lonote/google_dmp/diff_match_patch.py
# Fix non-executable script
sed -i "s|Categories=Office|
Categories=Office;ProjectManagement;Utility;X-SuSE-DesktopUtility;|"
xdg/lonote.desktop

第一个 wrong EOL 的意思是说不要用 MAC 或 WIN 的编辑器来写 Linux 文档。
第二个 non-executable 的意思说不在 /usr/bin 下的 python 脚本请不要在第一行使用 shebang,
shebang 就是 #!/usr/bin/python3 这样的东西,它们是作为 lib 存在的,最终会被装到 python 程式的统一库目
录中去,就不需要告诉系统这个要用 python 3 来跑了。加上反而会让 linux 认为它是可以执行的,但又没有执行权限,会
warning。另外库文件本身也不应该给予执行权限。
第三个是 .desktop 文件的 Categories, RPM 系发行版中, Fedora 的 Group tag 比较少,用它做
benchmark 会让其他 tag 多的发行版无法 fallback 而报错。

rm -rf %{buildroot}%{_datadir}/doc/%{name}/ # Remove wrongly installed
docs

这里,可能是 deb 的习惯?RPM 发行版都是装到 /usr/share/doc/packages/lonote 这样的文件夹中的。

Larina Lin

unread,
May 5, 2012, 8:16:21 AM5/5/12
to lon...@googlegroups.com
謝謝您的連結!我這就將其加入。

(加入中……)




關於你提到的問題,首先,changelog 在這裡:

你一定是漏掉了:),希望這幫的上忙……
(註:我沒有在原碼包裡附 changelog,主要是我自認英文不夠好)


其次,EOL的問題,這我是參考《深入 Python 3》的「打包 Python 类库」章節,他提到……

「为了适应 Windows 用户,"自述"文件应包含 .txt 扩展名,而且它应该使用 Windows 风格回车符。不能仅仅因为你使用了一个优秀的文本编辑器,它从命令行运行并包括它自己的宏语言,而需要让你的用户为难。(你的用户使用记事本。虽然可悲,但却是事实。)即使你工作在 Linux 或 Mac OS X 环境下,优秀的文本编辑器毫无疑问地会有一个选项,允许将文件以 Windows 风格回车符来保存。」


我覺得他說的有點道理,所以我就照辦了,因為我的原碼壓縮包設計上也是要能在 windows 下運作的。總不能把那個雖然可悲的事實排除在外……

倒是你沒法繞過這個問題嗎?Linux 下應該繞得過去吧……



Shebang 問題:

如果是別的檔案我一定聽你的,不過「diff_match_patch.py」不是我寫的檔案,而是別人的東西。這有點難搞。


這個專案用的是 apache 2.0 授權,和我的 GPL3 固然沒衝突啦,不過那條款依然是好長的一大堆,我不太確定改別人的檔案到底行不行,或要不要追加額外但書或宣告之類的,好像會衍伸出不少讓人撓頭的事。
不過你說的也有道理,函式庫確實不該加 shebang……

老實說吧,我其實根本沒開過這個檔案;我只是確認 API 有正常工作,裡面運作我沒翻過。(函式庫不就該這樣……)
或許這該回報給原專案,問問看他們的意思,看要不要更動一下。



desktop 檔案問題:

我不是很確定你的意思。你的意思是說「Office」這個分類放在 openSUSE 裡面會掛掉嗎?這……咦?可是我電腦上的 libreoffice 也是用這個分類,另外別的程式也有用,應該很普通才對啊……真的不是我哪裡理解錯了嗎?(實在是很奇怪)

先假設您確實就是這個意思好了,如果您在這裡有不得不改動的理由,您可以自行換個分類沒問題的。請便。



最後,documents 的路徑問題:

在 ubuntu 下時,說明檔案確實是裝在 setup.py 腳本裡寫的位置上。不過,doc 的位置並不會影響程式執行,如果您覺得有必要,隨便搬去哪裡都行。讓使用者能找得到就好。




話說回來,我覺得除了shebang以外的問題,原碼包這邊都很難幫上忙的……我的意思是,在不影響其他發行版(含 windows) 的情況下。

至於 setup.py 那是輔助打包用的,如果您覺得用它反而礙事,請當它一開始就不存在就好。

Marguerite Su

unread,
May 5, 2012, 10:34:19 PM5/5/12
to Lonote筆記軟體討論區

On 5月5日, 下午8時16分, Larina Lin <larina...@gmail.com> wrote:
> 謝謝您的連結!我這就將其加入。
>
> (加入中……)
>
> 關於你提到的問題,首先,changelog 在這裡:http://code.google.com/p/lonote/wiki/Changelog
>
> 你一定是漏掉了:),希望這幫的上忙……
> (註:我沒有在原碼包裡附 changelog,主要是我自認英文不夠好)
>
> 其次,EOL的問題,這我是參考《深入 Python 3》的「打包 Python 类库」章節,他提到……
>
> 「为了适应 Windows 用户,"自述"文件应包含 .txt 扩展名,而且它应该使用 Windows

> 风格回车符。不能仅仅因为你使用了一个优秀的文本编辑器,它从命令行运行并包括它自己的宏语言,而需要让你的用户为难。(你的用户使用记事本。虽然可悲,但却是 事实。)即使你工作在


> Linux 或 Mac OS X 环境下,优秀的文本编辑器毫无疑问地会有一个选项,允许将文件以 Windows 风格回车符来保存。」
>
> 原文見此:http://woodpecker.org.cn/diveintopython3/packaging.html
>
> 我覺得他說的有點道理,所以我就照辦了,因為我的原碼壓縮包設計上也是要能在 windows 下運作的。總不能把那個雖然可悲的事實排除在外……
>
> 倒是你沒法繞過這個問題嗎?Linux 下應該繞得過去吧……

哦,原來是這樣。一般這種情況的 standard unix way 解決是 README, README.Win.txt 這樣子,一份
Unix(Lin & MAC),一份 Win。。。這樣就可以 RM 掉 Win 的內容。做 EOL 這個內容很高階的,deb 打包者一定是不
會,RPM 打包者大部分都不會。。。雖然命令很簡單。dive into python 3 是犧牲了開源系統的東西來滿足閉源,本身這精神就不大
對。。。

>
> Shebang 問題:
>
> 如果是別的檔案我一定聽你的,不過「diff_match_patch.py」不是我寫的檔案,而是別人的東西。這有點難搞。
>
> 專案在此:http://code.google.com/p/google-diff-match-patch/
>
> 這個專案用的是 apache 2.0 授權,和我的 GPL3
> 固然沒衝突啦,不過那條款依然是好長的一大堆,我不太確定改別人的檔案到底行不行,或要不要追加額外但書或宣告之類的,好像會衍伸出不少讓人撓頭的事。
> 不過你說的也有道理,函式庫確實不該加 shebang……
>
> 老實說吧,我其實根本沒開過這個檔案;我只是確認 API 有正常工作,裡面運作我沒翻過。(函式庫不就該這樣……)
> 或許這該回報給原專案,問問看他們的意思,看要不要更動一下。
>

我覺得應該回報給原專案。。。實際上你直接改掉也沒有問題的。協議上是允許的。

另外這個 shebang 的問題雖然可做可不做,不過 warnings 確實很惱人。做的話就是 sed -i "1d" 直接刪掉第一行。但是如
果你這邊去了 shebang,我這麼做就把你的代碼刪了一行。


> desktop 檔案問題:
>
> 我不是很確定你的意思。你的意思是說「Office」這個分類放在 openSUSE 裡面會掛掉嗎?這……咦?可是我電腦上的 libreoffice
> 也是用這個分類,另外別的程式也有用,應該很普通才對啊……真的不是我哪裡理解錯了嗎?(實在是很奇怪)
>
> 先假設您確實就是這個意思好了,如果您在這裡有不得不改動的理由,您可以自行換個分類沒問題的。請便。
>

是這樣的,Office 這個單一分類在 openSUSE 下是一個母分類,必須和子分類連起來用。不然帶 rpmlint (就是幫你檢查常見錯誤
的程式)打包的時候就會報錯讓編譯進行不下去。但是如果你不是在 openSUSE 上編譯的話,這個分類是沒有問題的,openSUSE 在安裝的時
候不會做這種檢查(libreoffice)。導致的唯一後果就是 KDE/GNOME 的桌面菜單不知道把它放在哪裏。。。只能放在 recent
applications 這個分類下面。

所以我建議的是這樣: Categories:Office;ProjectManagement;

這樣 openSUSE 打包時不會有問題,其他發行版同樣不會有問題,因爲他們找到第一個 Office 就會知道放在哪裏。

> 最後,documents 的路徑問題:
>
> 在 ubuntu 下時,說明檔案確實是裝在 setup.py 腳本裡寫的位置上。不過,doc
> 的位置並不會影響程式執行,如果您覺得有必要,隨便搬去哪裡都行。讓使用者能找得到就好。
>
> 話說回來,我覺得除了shebang以外的問題,原碼包這邊都很難幫上忙的……我的意思是,在不影響其他發行版(含 windows) 的情況下。
>
> 至於 setup.py 那是輔助打包用的,如果您覺得用它反而礙事,請當它一開始就不存在就好。

這個是小事情啦。原版包把它放在 /usr/share/doc/packages/lonote 裏面就可以了,deb 一樣沒問題的,這樣多數的
RPM 也不用在修補。。。因爲 openSUSE 和 Fedora 有個叫 Help browser 的東西,放在不標準的文件夾下面,打開是空
白的。。。

Larina Lin

unread,
May 6, 2012, 12:00:12 AM5/6/12
to lon...@googlegroups.com
OK,我修改了 desktop 檔案,就如您建議的那樣。然後也把 EOL 的問題也依照需求分成兩個檔案了,setup.py 之後只會保留 unix 風格的版本。

至於 shebang 問題先讓我 pass……

推送到版本庫了,但暫時沒發送新版本(沒啥真正意義上的更新)。有需要的話請用 hg clone 抓下來用:


Marguerite Su

unread,
May 6, 2012, 9:32:39 PM5/6/12
to Lonote筆記軟體討論區

好的,谢谢您。

Larina Lin

unread,
May 6, 2012, 11:34:14 PM5/6/12
to lon...@googlegroups.com
不會,倒是謝謝您熱心幫我打包~♫

Larina Lin

unread,
Jun 5, 2012, 10:54:19 PM6/5/12
to lon...@googlegroups.com
我最近也裝了openSUSE,然而lonote在openSUSE下跑會出現

ASSERT: "(proxy_flags & PROXY_SLOT_INVOKED) == 0" in file qpycore_pyqtproxy.cpp, line 253

的錯誤訊息,很奇怪(不管是你包的或我的原碼包都一樣,不是你的問題)。

我是想問說你那邊也有這種狀況嗎?我和openSUSE還不太熟,想問問有沒有什麼線索,頭疼中……

總之,多謝!

Larina Lin

unread,
Jun 6, 2012, 12:15:57 AM6/6/12
to lon...@googlegroups.com
我找到在哪個點卡死了。於是在不改變程式行為的狀況下註解掉一行,一切搞定。

版本庫真是個好東西啊XD,我是在12.1 KDE版本上測出來的。

等等就把更新的1.8.3發出來。

ONI

unread,
Sep 6, 2012, 11:37:47 PM9/6/12
to lon...@googlegroups.com
我也是遇到一樣的問題…
不過現在官方源還在1.7.9…=.=…現在變成想用lonote要切回fedora去用這樣XD

Larina Lin於 2012年6月6日星期三UTC+8下午12時15分57秒寫道:

Larina Lin

unread,
Sep 7, 2012, 6:18:20 AM9/7/12
to lon...@googlegroups.com

那太麻煩了啦!直接用原碼包執行最新版本吧,只要依賴裝妥,把原碼包直接解開雙擊就能用了(至少咱都是這樣用的 XD)

ONI於 2012年9月7日星期五UTC+8上午11時37分47秒寫道:
我也是遇到一樣的問題…
不過現在官方源還在1.7.9…=.=…現在變成想用lonote要切回fedora去用這樣XD

ONI

unread,
Sep 7, 2012, 12:36:12 PM9/7/12
to lon...@googlegroups.com
疑!?真的可以耶 !?=口= 
我對程式構造不熟悉,竟然可以這樣用XD

--
您已訂閱「Google 網上論壇」的「Lonote筆記軟體討論區」群組,因此我們特別傳送這封郵件通知您。
如要在網路上查看這項討論,請造訪 https://groups.google.com/d/msg/lonote/-/pV4Z6uQj6VcJ
如要在此群組張貼留言,請傳送電子郵件至 lon...@googlegroups.com
如要取消訂閱此群組,請傳送電子郵件至 lonote+un...@googlegroups.com
如需更多選項,請造訪此群組:http://groups.google.com/group/lonote?hl=zh-TW

Marguerite Su

unread,
Sep 7, 2012, 9:40:06 PM9/7/12
to lon...@googlegroups.com
Sorry,我不知道它升级了。。。稍等

Marguerite Su

unread,
Sep 7, 2012, 10:42:29 PM9/7/12
to lon...@googlegroups.com
Traceback (most recent call last):
[  155s]   File "setup.py", line 76, in <module>
[  155s]     'build_scripts': lonote_build_scripts,
[  155s]   File "/usr/lib64/python3.1/distutils/core.py", line 149, in setup
[  155s]     dist.run_commands()
[  155s]   File "/usr/lib64/python3.1/distutils/dist.py", line 919, in run_commands
[  155s]     self.run_command(cmd)
[  155s]   File "/usr/lib64/python3.1/distutils/dist.py", line 938, in run_command
[  155s]     cmd_obj.run()
[  155s]   File "/usr/lib64/python3.1/distutils/command/build.py", line 128, in run
[  155s]     self.run_command(cmd_name)
[  155s]   File "/usr/lib64/python3.1/distutils/cmd.py", line 315, in run_command
[  155s]     self.distribution.run_command(command)
[  155s]   File "/usr/lib64/python3.1/distutils/dist.py", line 938, in run_command
[  155s]     cmd_obj.run()
[  155s]   File "setup.py", line 52, in run
[  155s]     build_scripts.run(self)
[  155s]   File "/usr/lib64/python3.1/distutils/command/build_scripts.py", line 51, in run
[  155s]     self.copy_scripts()
[  155s]   File "/usr/lib64/python3.1/distutils/command/build_scripts.py", line 83, in copy_scripts
[  155s]     first_line = f.readline()
[  155s]   File "/usr/lib64/python3.1/encodings/ascii.py", line 26, in decode
[  155s]     return codecs.ascii_decode(input, self.errors)[0]
[  155s] UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 38: ordinal not in range(128)
[  155s] error: Bad exit status from /var/tmp/rpm-tmp.LScIhT (%build)

请问这个是什么原因?

现在 openSUSE 12.2 的 1.8.6 可以在 


下载测试。因为是 noarch,所以 12.1 也可以用。。。

Larina Lin

unread,
Sep 8, 2012, 6:38:50 PM9/8/12
to lon...@googlegroups.com
依據:
http://bugs.python.org/issue10419
http://bugs.python.org/issue6011

Python 3.1.2 版本的 distutils 可能有瑕疵,試試新版的 python3 看看,不然試著 export LANG=zh_TW.UTF-8 試試(這是我環境的組態)。我在 python 3.2.3 版上不管用哪種組態來執行 setup.py 都沒有這問題(您是在執行 setup.py 時掛掉的吧?)




Marguerite Su於 2012年9月8日星期六UTC+8上午10時42分30秒寫道:
請問這個是什麼原因?

現在 openSUSE 12.2 的 1.8.6 可以在 
下載測試。因為是 noarch,所以 12.1 也可以用。。。
Reply all
Reply to author
Forward
0 new messages