diff -dur a/mac_alias/alias.py b/mac_alias/alias.py --- a/mac_alias/alias.py 2015-10-19 12:12:48.000000000 +0200 +++ b/mac_alias/alias.py 2016-04-03 12:13:12.037159417 +0200 @@ -243,10 +243,10 @@ alias = Alias() alias.appinfo = appinfo - alias.volume = VolumeInfo (volname.replace('/',':'), + alias.volume = VolumeInfo (volname.decode().replace('/',':'), voldate, fstype, disktype, volattrs, volfsid) - alias.target = TargetInfo (kind, filename.replace('/',':'), + alias.target = TargetInfo (kind, filename.decode().replace('/',':'), folder_cnid, cnid, crdate, creator_code, type_code) alias.target.levels_from = levels_from @@ -261,9 +261,9 @@ b.read(1) if tag == TAG_CARBON_FOLDER_NAME: - alias.target.folder_name = value.replace('/',':') + alias.target.folder_name = value.decode().replace('/',':') elif tag == TAG_CNID_PATH: - alias.target.cnid_path = struct.unpack(b'>%uI' % (length // 4), + alias.target.cnid_path = struct.unpack('>%uI' % (length // 4), value) elif tag == TAG_CARBON_PATH: alias.target.carbon_path = value @@ -298,9 +298,9 @@ alias.target.creation_date \ = mac_epoch + datetime.timedelta(seconds=seconds) elif tag == TAG_POSIX_PATH: - alias.target.posix_path = value + alias.target.posix_path = value.decode() elif tag == TAG_POSIX_PATH_TO_MOUNTPOINT: - alias.volume.posix_path = value + alias.volume.posix_path = value.decode() elif tag == TAG_RECURSIVE_ALIAS_OF_DISK_IMAGE: alias.volume.disk_image_alias = Alias.from_bytes(value) elif tag == TAG_USER_HOME_LENGTH_PREFIX: @@ -422,13 +422,13 @@ # (so doing so is ridiculous, and nothing could rely on it). b.write(struct.pack(b'>h28pI2shI64pII4s4shhI2s10s', self.target.kind, - carbon_volname, voldate, + carbon_volname, int(voldate), self.volume.fs_type, self.volume.disk_type, self.target.folder_cnid, carbon_filename, self.target.cnid, - crdate, + int(crdate), self.target.creator_code, self.target.type_code, self.target.levels_from, @@ -449,12 +449,12 @@ b.write(struct.pack(b'>hhQhhQ', TAG_HIGH_RES_VOLUME_CREATION_DATE, - 8, long(voldate * 65536), + 8, int(voldate * 65536), TAG_HIGH_RES_CREATION_DATE, - 8, long(crdate * 65536))) + 8, int(crdate * 65536))) if self.target.cnid_path: - cnid_path = struct.pack(b'>%uI' % len(self.target.cnid_path), + cnid_path = struct.pack('>%uI' % len(self.target.cnid_path), *self.target.cnid_path) b.write(struct.pack(b'>hh', TAG_CNID_PATH, len(cnid_path)))