如何添加/创建<source.changes>文件?

我已经使用Quickly创建了一个软件包,并将其上传到了launchpad上的一个分支,但是我该如何为这个程序创建一个PPA并将其上传到其中呢?我对这些东西真的很陌生,我刚刚学会了如何使用bazaar。
我应该如何添加/创建一个文件?
jeggy@jeggy-XPS:~/Skriviborð/jebster$ dput ppa:jeggy/jebrowser
Not a .changes file.
Please select a .changes file to upload.
Tried to upload: ppa:jeggy/jebrowser

我已经添加了一个OpenPGP密钥,如果有帮助的话。
回应andrewsomething:
jeggy@jeggy-XPS:~/Skriviborð/jebster$ quickly share --ppa ppa:jeggy/jebrowser
Get Launchpad Settings
Launchpad connection is ok
gpg: WARNING: unsafe permissions on configuration file `/home/jeggy/.gnupg/gpg.conf'
gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/jeggy/.gnupg/gpg.conf'
gpg: WARNING: unsafe permissions on configuration file `/home/jeggy/.gnupg/gpg.conf'
gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/jeggy/.gnupg/gpg.conf'
User or Team ppa:jeggy not found on Launchpad
ERROR: share command failed
Aborting

当我运行debuild -S -sa时,我得到了这个。
jeggy@jeggy-XPS:~/Skriviborð/jebster$ debuild -S -sa
 dpkg-buildpackage -rfakeroot -d -us -uc -S -sa
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_SOURCE=2
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro
dpkg-buildpackage: source package jebster
dpkg-buildpackage: source version 0.1
dpkg-buildpackage: source changed by root <root@jeggy-XPS>
 dpkg-source --before-build jebster
 fakeroot debian/rules clean
dh clean --with python2,translations
   dh_testdir
   dh_auto_clean
running clean
'build/lib.linux-x86_64-2.7' does not exist -- can't clean it
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-2.7' does not exist -- can't clean it
WARNING: the following files are not recognized by DistUtilsExtra.auto:
  bin/jebsterc
  help/C/figures/icon.png
  help/C/index.page
  help/C/preferences.page
  help/C/topic1.page
  jebster.desktop.in
  po/jebster.pot
   dh_clean
 dpkg-source -b jebster
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: warning: source directory 'jebster' is not <sourcepackage>-<upstreamversion> 'jebster-0.1'
dpkg-source: info: using source format `1.0'
dpkg-source: info: building jebster in jebster_0.1.tar.gz
dpkg-source: info: building jebster in jebster_0.1.dsc
 dpkg-genchanges -S -sa >../jebster_0.1_source.changes
dpkg-genchanges: including full source code in upload
 dpkg-source --after-build jebster
dpkg-buildpackage: source only upload: Debian-native package
Now running lintian...
E: jebster changes: changed-by-address-malformed root <root@jeggy-XPS>
W: jebster source: diff-contains-bzr-control-dir .bzr
W: jebster source: unused-build-dependency-on-cdbs
W: jebster source: package-needs-versioned-debhelper-build-depends 8
W: jebster source: ancient-standards-version 3.8.3 (current is 3.9.3)
Finished running lintian.
Now signing changes and any dsc files...
 signfile jebster_0.1.dsc root <root@jeggy-XPS>
gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/jeggy/.gnupg/gpg.conf'
gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/jeggy/.gnupg/gpg.conf'
gpg: skipped "root <root@jeggy-XPS>": secret key not available
gpg: /tmp/debsign.BdtFRCql/jebster_0.1.dsc: clearsign failed: secret key not available
debsign: gpg error occurred!  Aborting....
debuild: fatal error at line 1271:
running debsign failed

jeggy@jeggy-XPS:~/Skriviborð/jebster/debian$ cat changelog
jebster (0.1) precise; urgency=low

  [ Jógvan Olsen ]
  * Initial release.

  [ root ]

 -- root <root@jeggy-XPS>  Mon, 25 Jun 2012 14:53:00 +0100


jeggy@jeggy-XPS:~/Skriviborð/jebster/debian$ gpg --list-keys
gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/jeggy/.gnupg/gpg.conf'
/home/jeggy/.gnupg/pubring.gpg
------------------------------
pub   2048R/1C17B342 2012-03-10
uid                  Ubuntu Accomplishments <jono@ubuntu.com>
sub   2048R/6305AA1F 2012-03-10
sub   2048D/05164E07 2012-03-10

pub   1024R/2868F9C3 2012-06-23
uid                  Jógvan Olsen <jeggy@jebster.net>

pub   2048R/5C24B331 2012-06-24
uid                  Jógvan Olsen <jeggy@jebster.net>
sub   2048R/162F6987 2012-06-24

pub   2048R/2B4F8FE7 2012-06-26
uid                  Jogvan Olsen <jeggy@jebster.net>
sub   2048R/9CF57E08 2012-06-26

你能进入你的源代码目录,运行debuild -S -sa命令,并将输出包含在你的问题中吗? - ish
谢谢!请将您jebster目录中的debian/changelog文件内容以及gpg --list-keys命令的输出发布出来。 - ish
3个回答

好的,我们需要按照通常的PPA流程为您准备(忘记这个“快速”业务,它似乎进展缓慢 ;))

对不起,jeggy,请原谅我使用了您的全名,但这是在您的Launchpad账户上,所以不算秘密:

  1. 签署行为准则

  2. 设置您的姓名并正确修改更改日志:

    • E: jebster changes: changed-by-address-malformed root <root@jeggy-XPS>
    • 这是一个问题,因为(a)它的格式错误,(b)与您的GPG密钥无关。
    • 在终端中设置以下变量:
      export DEBFULLNAME="Jógvan Olsen"
      export DEBEMAIL="jeggy@jebster.net"
      
    • 现在在gedit中打开更改日志(debian/changelog);仔细选择末尾的此签名:
      root <root@jeggy-XPS> 并将其更改为
      Jógvan Olsen <jeggy@jebster.net> 确保前后的空格不受影响。
    • 最终的更改日志应该如下所示:
      jebster (0.1) precise; urgency=low
      \* Initial release.
      -- Jógvan Olsen Tue, 03 Jul 2012 04:29:33 -0700
  3. 最后,运行debuild并正确签署source.changes

    • 运行debuild -S -sa,这次您应该被要求使用您的GPG密钥5C24B331进行签署

    • cd ..,然后dput ppa:jeggy/jebster xxxxxxx_source.changes


当我尝试注册行为准则的代码时,我一直遇到这个错误 http://khp.randompoop.net/uploads/Screenshot%20from%202012-07-03%2014:21:37.png - Jeggy
好的,那是一个凌乱的钥匙扣 :p。我现在不在电脑前,但如果你没有使用1024位的密钥,你可以用gpg --delete-secret-key 2868F9C3删除它,然后再尝试CoC -- 这次如果需要的话,加上-u "Jógvan Olsen"这个额外选项给gPg。 - ish
@Jeggy,这个错误明显是由于GPG默认使用第一个密钥1024/2868F9C3造成的,而该密钥没有与之关联的公钥。按照前面的评论指示删除该密钥应该会有所帮助... - ish
太棒了!恭喜 @Jeggy,我期待着试用jebrowser :) 别忘了接受/点赞/悬赏 :D - ish
我遇到了另一个问题... http://paste.ubuntu.com/1074824/ - Jeggy
1@Jeggy:抱歉,这是因为我在更改日志中使用了作为示例的1.0.0-1中的“-1”;“-N”表示Debian修订版,因此它会寻找原始源软件包。请查看编辑后的答案,第一行/版本应为“jebster(0.1)precise; urgency=low”。 - ish

.changes文件是PGP签名的文件,描述了Debian源代码包的内容,包括不同文件的Sha256校验和和变更日志条目。当您构建一个源代码包时,它会被生成,通常通过运行debuild -S来完成。

但您不需要担心这个!Quickly会为您处理所有这些。只需运行quickly share --ppa ppa:jeggy/jebrowser


谢谢,但是它没有起作用 :( 我把输出添加到了问题中。 - Jeggy

我觉得这是一个launchpad设置的问题。
我在launchpad上看到了你的个人资料页面。

https://launchpad.net/~jeggy

只有在您签署了Ubuntu行为准则之后,才能激活PPA。
您是否激活“已签署Ubuntu行为准则:是”?
如何激活行为准则,请点击此处: 我如何签署Ubuntu行为准则? 如果您发现已经存在错误的文本并且无法发布新文本,请点击“停用”按钮。请从头再试一次。
然后您可以在Launchpad个人资料页面上看到“已签署Ubuntu行为准则:是”,请再次尝试该命令:
quickly share --ppa jeggy/jebrowser

我重新写了答案,为了解决一个问题。

哇..我以为我已经做过了....但是当我尝试时,这就是我得到的结果。`有一个错误。(7, 9, u'没有公钥')` - Jeggy
当你上传CoC时,你使用了SSH密钥吗? 你必须使用OpenPGP密钥,而不是SSH密钥。 - vine_user
我该如何选择?我在Launchpad上有SSH和PGP密钥。我只是按照说明操作了一下。 - Jeggy
我误将这个案例视为简单上传的文件的情况。在这种情况下,SSH与之无关。请复制并粘贴由GPG密钥加密的文本。 - vine_user