64studio / pdk Goto Github PK
View Code? Open in Web Editor NEW64 Studio Platform Development Kit
License: GNU General Public License v2.0
64 Studio Platform Development Kit
License: GNU General Public License v2.0
Seen after running pdk download 64studio.com/cups.xml on /srv/pdk/channels/debian/squeeze
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?
Seen after running:
pdk mediagen picax.xml
on Debian wheezy.
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.
it gets annoying for projects with multiple packages, let's hide it.
Can we include sources in a deb channel?
This is needed for licence-compliance.
pdk log
fails with an error when nothing has yet been committed to the workspace.
Shouldn't it rather just show nothing?
We need a new command to list included components in a component.
For instance, pdk dumpcomps test.xml
should print a list of all components it contains.
After running:
pdk upgrade --dry-run 64studio.com/cups.xml
Traceback (most recent call last):
AttributeError: 'module' object has no attribute 'ParseSection'
pdk ERROR: Unknown error
This issue will track the progress of adding in ARM dev board support to PDK.
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
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
pdk mediagen picax.xml on Debian wheezy
Very annoying to not be able to comment out meta.
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>
As the question asks.
This is more of a way for me to keep track of ideas I am having...
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.
At the moment it's easy to do a git pull, but we should define our own command for our own workflow.
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
This is a pain when overriding packages from upstream repositories, for instance a backported version of Nodejs.
(I will add more detail to this later. The workaround is to explicitly add the backported package to the list of packages when running pdk abstract
)
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.
As Debian Stretch is now stable, buster and sid are developing, we need to begin to build development packages.
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.
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 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
Currently documentation is a bit of a mess.
We need to remove the Github wiki & have one folder in the repo for a manual.
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
Seems similar to http://comments.gmane.org/gmane.linux.debian.devel.dak/3163
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
There is a makefile (which should be included from projects) in the debian folder, but we are not using it with the example projects.
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?
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.
The current one allows for no customizations to be made.
archive-keyring.pub
should be named as archive-keyring.asc
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.....
Just need to call git diff :-)
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.
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.
On wheezy, doing a pdk channel update results in:
pdk INFO: Building channel index...
Traceback (most recent call last):
AttributeError: 'module' object has no attribute 'ParseTagFile'
pdk ERROR: Unknown error
Seems similar to:
https://bugs.launchpad.net/ubuntu/+source/system-config-kickstart/+bug/1236315
Currently we duplicate the list of packages which must be installed when building an image.
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.
<?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.
We should make sure the key exists before trying to generate anything.
Also seen on Debian wheezy. Another case change in the apt_pkg API by the look of it.
chris@ares:~/pdk/channels/debian/jessie/64studio.com$ pdk status
fatal: This operation must be run in a work tree
fatal: This operation must be run in a work tree
pdk ERROR: Operation cannot be performed: command "('/bin/sh', ['/bin/sh', '-c', '{ git update-index -z --force-remove --stdin ; } '])" failed: 32768
E: GPG error: http://apt.64studio.com lenny-backports InRelease : Clearsigned file isn't valid, got 'NO DATA' (does the network require authentication?)
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.
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.
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) ...
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.