Code Monkey home page Code Monkey logo

pdk's People

Contributors

danielhjames avatar freeekanayaka avatar obbardc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pdk's Issues

Can we make bootable USB sticks?

With the latest Debian CD isos, you can just use cp to copy straight to the device.

Can we do this with ISOs generated using PDK?

Integrate with GitHub

pdk push and pdk pull commands have been disabled.

Would be nice to enable these, so we can keep track of distro changes in remote repositories.

Also, can we easily make these commands work with GitHub repos? Shouldn't be too hard.

python-xml no longer available in Debian

Attempting to build a Wheezy package of PDK 0.9.9 today, I ran into the
issue that the python-xml package is no longer in Debian. Its functions
are meant to be available in the core Python 2.7 packages, but after
removing python-xml from the build-depends I ran into this error:

running install_egg_info
Writing
/home/daniel/64studio/git/pdk/pdk-0.9.9/debian/pdk/usr/lib/python2.7/site-packages/pdk-0.0.0-py2.7.egg-info
python makeman.py >pdk.1
Traceback (most recent call last):
File "makeman.py", line 107, in
spec = command.get_spec()
File "/home/daniel/64studio/git/pdk/pdk-0.9.9/pdk/command_base.py",
line 409, in get_spec
return import_and_find(self.module_name, self.function_name)
File "/home/daniel/64studio/git/pdk/pdk-0.9.9/pdk/command_base.py",
line 62, in import_and_find
module = import(module_name, globals(), locals(), ["pdk"])
File "/home/daniel/64studio/git/pdk/pdk-0.9.9/pdk/workspace.py", line
34, in
from pdk.version_control import VersionControl, CommitNotFound
File "/home/daniel/64studio/git/pdk/pdk-0.9.9/pdk/version_control.py",
line 56, in
from pdk.util import pjoin, shell_command, NullTerminated
File "/home/daniel/64studio/git/pdk/pdk-0.9.9/pdk/util.py", line 42,
in
from xml.sax.writer import XmlWriter
ImportError: No module named writer
make: *** [install/pdk] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit
status 2
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc -I.svn failed

Calling the command pdk without arguments shows no help

I think we can make this show something a little more... Helpful?

chris@apollo:~$ pdk
pdk(1.pdk) pdk(1.pdk)

   Command pdk contains subcommands:
          abstract
          add
          cat
          channel update
          closure
          commit
          complete
          create workspace
          download
          dumpmeta
          log
          mediagen
          mv
          pull
          purge
          remote listen
          remove
          repogen
          resolve
          revert
          rm
          semdiff
          status
          upgrade
          workspace create



                                                                pdk(1.pdk)

pdk ERROR: Syntax Error: Tried to execute partial command

Specifying a dir channel stanza should support local files

The following code specifies an absolute path, which is okay, but it would be nice to support paths inside the workspace.

<?xml version="1.0" ?>
<channels>
    <!-- Our Backports -->
    <backports>
        <type>dir</type>
        <path>/home/chris/pdk/projects/pideck/64studio.com/backports/</path>
        <priority>10</priority>
    </backports>
</channels>

for example:

<?xml version="1.0" ?>
<channels>
    <!-- Our Backports -->
    <backports>
        <type>dir</type>
        <path>64studio.com/backports/</path>
        <priority>10</priority>
    </backports>
</channels>

heads up: related work

As a former very content 64studio user, I'd like to say thank you!

Currently, I'm using NixOS with Musnix, for some of the same reasons you created pdk and 64studio:
I can develop the perfect real time audio workstation, and do it under version control.

Some more reasons NixOS is good for musicians.

https sources in channels.xml does not work

Here's an example of one that does not work:

<?xml version="1.0"?>
<channels>
    <node>
        <type>apt-deb</type>
        <path>https://deb.nodesource.com/node_8.x/</path>
        <archs>armhf</archs>
        <dist>stretch</dist>
        <priority>90</priority>
        <components>main</components>
    </node>
</channels>

workaround (for now) is to just make it http

How to share a cache between multiple projects?

We know it can be done, but how?

This would be a great way to save (precious!) disk space.

I'll let you figure this one out Daniel since you have done it in the past. Holla if you need access to a Debian server running the latest PDK source.

Implement clone command to clone a PDK project

At the moment it's a difficult process for a user to clone a project, let's make it a bit easier!

This should be a standard git clone of the project files (including the etc/channels.xml?).
It should also set this up as a git remote called origin for future pulls.

The pdk download and pdk repogen commands will then download debs from our repo when needed.

Invalid channel type 'pdk-deb'

When running 'make components'

pdk closure --out-file=linux.xml --arch=amd64 minimal.xml linux.xml
Traceback (most recent call last):
Error: Invalid channel type 'pdk-deb'
pdk ERROR: Unknown error

"pdk pull" does not follow http redirects

$ pdk pull components
http://pdk.64studio.net/channels/debian/testing//etc/schema
|------------------------------------------------------------|
pdk ERROR: Operation cannot be performed: Remote workspace has invalid schema number.

This is due to the pdk file server having a redirect from http => https.
For now I have modified the server configuration to not redirect to https if the useragent is set to "pdk" for backwards compatibility.

Here is the option we possibly need to enable for all curl calls: https://www.programcreek.com/python/example/3074/pycurl.FOLLOWLOCATION

improve documentation

Currently documentation is a bit of a mess.

We need to remove the Github wiki & have one folder in the repo for a manual.

PDK does not sign APT repository put on CD

The pdk repogen command signs the created repository using GPG. All good.

The pdk mediagen command (when creating a Debian ISO) does not sign the repository which is copied onto the CD using GPG. This is preventing the installer from installing, unless a flag is set in the preseed file.

The workaround for this is to put the following into a preseed file:-

d-i debian-installer/allow_unauthenticated boolean true

pdk closure does not like packages like python:any

This causes PDK closure to quit with an error about not finding python:any.

Unable to calculate closure [u"0 ... Can't install jackd2_1.9.10+20140719git3eb0ae6a~dfsg-2: no package provides python:any"]

even though Python is already specified as a dependency.

Test command (without Python as a dependency):
pdk abstract --arch=armhf --packages="jackd2" test.xml
pdk resolve test.xml
pdk closure --out-file=test.xml --arch=armhf test.xml
pdk upgrade test.xml

improve project makefile

There is a makefile (which should be included from projects) in the debian folder, but we are not using it with the example projects.

Use git submodules for upstream channels

So currently we git merge into local master for the 64studio upstream metadata.

All of rhe upstream meta is in seperate directories, why dont we just use git submodules?

mediagen arguments are not passed to pdk-mediagen script

We should pass these arguments to the pdk-mediagen script, to allow run-time changes of certain parameters.

usage: pdk COMPONENT

       Generate media for a linux product.

       Options

       -h, --help
              show this help message and exit

       -a ARCH, --arch=ARCH
              Architecture

       -l LABEL, --label=LABEL
              Media label

       -o DEST, --out-file=DEST, --out-dest=DEST
              Destination for output.

Update packaging to allow for new Imggen commands & package version 1.0.0 Alpha

I am (nearly) sure the Debian packages needed are dosfstools debootstrap dmsetup kpartx mount qemu-user-static

Should we make these depends of a seperate package: pdk-imggen OR just pollute the main package with these additional depends? But the likeliness of a user installing PDK without the Imggen command is quite unlikely.

Also, we need to generate some new packages and host them for version 1.0 unstable testing. Dan, can you look a bit into http://packagecloud.io again?

I've not bothered to update the debian/changelog in a while.

A neat way would be an auto-deb-generator which updates the repository on every Git commit ;-). This would also be very useful for our other projects.....

Move documentation into GitHub wiki

Files in the repo under docs/ and manual/ should be moved into the Wiki. Should we also update and remove some documentation for the next release? Maybe it would be a good idea to start the documentation from scratch using these files as a reference.

Component names must not have underscores in

Strange one, running pdk closure with components with underscores in the name produces a bug which moans about parsing of the XML component file.

For now, we can just make sure to not include any non A-Z or 0-9 characters in the component name.

"pull" command fails late when uncomitted changes in workspace

We should check whether any uncommitted changes are present in the workspace before running the git fetch command.

$ pdk pull components

http://pdk.64studio.net/channels/debian/testing//etc/schema
|============================================================|
http://pdk.64studio.net/channels/debian/testing//etc/cache/blob_list.gz
|============================================================|
pdk INFO: Building channel index...
pdk INFO: Finished building channel index.
From http://pdk.64studio.net/channels/debian/testing//etc/git
 * [new branch]      master     -> components
pdk ERROR: Invalid input: Cannot merge with uncommitted changes in the workspace.

Workspaces have to be pulled over http, cannot pull a workspace from a local file

<?xml version="1.0" ?>
<channels>
        <components>
                <type>source</type>
                <path>/home/chris/pdk/channels/debian/jessie/rpi/</path>
        </components>
</channels>

error:

chris@apollo:~/pdk/projects/peidi$ pdk pull components
Counting objects: 23, done.
Compressing objects: 100% (21/21), done.
Total 23 (delta 16), reused 0 (delta 0)
Counting objects: 23, done.
Compressing objects: 100% (21/21), done.
Traceback (most recent call last):
UnicodeDecodeError: 'ascii' codec can't decode byte 0x92 in position 12: ordinal not in range(128)
pdk ERROR: Unknown error
fatal: sha1 file '<stdout>' write error: Broken pipe
fatal: early EOF
pdk ERROR: Operation cannot be performed: command "('/bin/sh', ['/bin/sh', '-c', '{ git unpack-objects ; } '])" failed: 32768

When using this channels.xml file, I cannot doa pdk pull components command. This works fine if the file is being served over HTTP.

A workaround, for now, is to setup an HTTP server for this purpose.

Unknown error code

Ive tried intalling the pdk package and I return an unknown error code. Ive also tried running the scripts in python 2.7 on a barebones debian system. But i keep gettin ... then i cannot continue to run python scripts. Ive also unziped the .gz and put the file path into the source list after running apt-get install i return

The package lists or status file could not be parsed or opened.

I try sudo apt-get install pdk and I return

Unable to locate package pdk

Ive also tried with the all.deb files.

Why are we shipping isolinux.bin with PDK?

The current version is eight years old. What exactly is the problem? Can we fix it?

It would be good to download this when we create the ISO, as we do with other binary files on the CD.

removing with apt leaves files/folders leftover in python dist-packages

apt-get purge pdk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  debugedit funnelweb git-core kpartx liblua5.2-0 libnspr4 libnss3 librpm3 librpmbuild3 librpmio3 librpmsign3 python-egenix-mxtexttools python-egenix-mxtools python-pexpect python-ptyprocess python-smartpm rpm
  rpm-common rpm2cpio smartpm-core
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  pdk* pdk-mediagen*
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 1,564 kB disk space will be freed.
Do you want to continue? [Y/n] 
(Reading database ... 49213 files and directories currently installed.)
Removing pdk (1.0.0~alpha1) ...
dpkg: warning: while removing pdk, directory '/usr/lib/python2.7/dist-packages/picax' not empty so not removed
dpkg: warning: while removing pdk, directory '/usr/lib/python2.7/dist-packages/pdk/xml_legacy/utils' not empty so not removed
dpkg: warning: while removing pdk, directory '/usr/lib/python2.7/dist-packages/pdk/xml_legacy/sax' not empty so not removed
dpkg: warning: while removing pdk, directory '/usr/lib/python2.7/dist-packages/pdk/xml_legacy/parsers/xmlproc' not empty so not removed
Processing triggers for man-db (2.7.6.1-2) ...

No keyring installed in /tmp/apt-info/trusted.gpg.d/

Seen on a Debian wheezy system:

$ pdk mediagen picax.xml
Get:1 file: wheezy Release.gpg [198 B]
Get:2 file: wheezy Release [3,872 B]
Ign file: wheezy Release
Ign file: wheezy/main Translation-en_GB
Ign file: wheezy/main Translation-en
Ign file: wheezy/main/debian-installer Translation-en_GB
Ign file: wheezy/main/debian-installer Translation-en
Reading package lists... Done
W: GPG error: file: wheezy Release: No keyring installed in /tmp/apt-info/trusted.gpg.d/

Seems to be due to picax/apt.py not using the wheezy style configuration when it writes to /tmp/apt-info/ because the trusted.gpg.d subdirectory is not created. Placing the 64 Studio apt key in /etc/apt/trusted.gpg.d/ on the build system is not enough.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.